AWS EC2 インスタンス で並列計算する際に CPUをフル活用できない
AWS EC2 c5.9xlarge インスタンプを使用しております。
(36 vCPU, 72 GB RAM)
AMI は ubuntu 18.04 を使用しております。
python で並列計算を、36コア使って実施したいのですが、CPUを認識しないのか、一部のCPUコアが使用されません。
pythonスクリプトではCPUの数を36に指定しています。
(指定しなくても、自動でコアの最大数に並列してくれるはずですが、1コアでのみしか動きませんでした。
36コアと指定すると、25コア使ってくれるようです。)
top でCPU使用率を見ると、以下のようになっています。
top - 01:52:47 up 34 min, 1 user, load average: 36.03, 34.15, 22.04
Tasks: 446 total, 37 running, 236 sleeping, 0 stopped, 0 zombie
%Cpu0 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu8 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu9 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu10 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu11 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu12 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu13 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu14 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu15 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu16 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu17 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu18 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu19 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu20 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu21 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu22 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu23 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu24 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu25 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu26 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu27 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu28 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu29 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu30 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu31 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu32 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu33 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu34 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu35 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 72028912 total, 63163192 free, 7853444 used, 1012272 buff/cache
KiB Swap: 10239996 total, 10239996 free, 0 used. 63486432 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3302 ubuntu 20 0 488808 235796 48848 R 100.0 0.3 14:49.20 python
3304 ubuntu 20 0 528140 275044 48816 R 100.0 0.4 14:49.12 python
3305 ubuntu 20 0 490244 236872 48652 R 100.0 0.3 14:49.16 python
3306 ubuntu 20 0 493836 240756 48940 R 100.0 0.3 14:49.13 python
3307 ubuntu 20 0 487884 234388 48496 R 100.0 0.3 14:49.19 python
3309 ubuntu 20 0 475068 219924 46628 R 100.0 0.3 14:49.13 python
3312 ubuntu 20 0 528812 275764 48848 R 100.0 0.4 14:49.13 python
3316 ubuntu 20 0 491356 237732 48512 R 100.0 0.3 14:49.13 python
3318 ubuntu 20 0 507600 254616 48820 R 100.0 0.4 14:49.14 python
3322 ubuntu 20 0 529840 276740 48920 R 100.0 0.4 14:49.07 python
3325 ubuntu 20 0 522588 268868 48348 R 100.0 0.4 14:49.11 python
3328 ubuntu 20 0 508744 255844 48936 R 100.0 0.4 14:49.11 python
3331 ubuntu 20 0 528416 275416 48876 R 100.0 0.4 14:49.11 python
3333 ubuntu 20 0 497844 244440 48616 R 100.0 0.3 14:49.10 python
3335 ubuntu 20 0 522516 268860 48436 R 100.0 0.4 14:49.06 python
3338 ubuntu 20 0 493688 240256 48404 R 100.0 0.3 14:49.08 python
3340 ubuntu 20 0 533152 279548 48484 R 100.0 0.4 14:49.07 python
3370 ubuntu 20 0 509480 255976 48420 R 100.0 0.4 14:39.26 python
3373 ubuntu 20 0 492532 239368 48748 R 100.0 0.3 14:32.92 python
3375 ubuntu 20 0 493040 239400 48380 R 100.0 0.3 14:32.55 python
3379 ubuntu 20 0 492884 239576 48688 R 100.0 0.3 14:27.08 python
3382 ubuntu 20 0 531604 278160 48396 R 100.0 0.4 12:41.57 python
3342 ubuntu 20 0 473212 219792 48540 R 99.7 0.3 14:49.06 python
3377 ubuntu 20 0 479024 225260 48356 R 99.7 0.3 14:28.90 python
3298 ubuntu 20 0 449504 194924 49564 R 8.6 0.3 1:15.02 python
3291 ubuntu 20 0 522544 268260 49784 R 8.3 0.4 1:15.00 python
3292 ubuntu 20 0 484124 229284 49460 R 8.3 0.3 1:15.02 python
3293 ubuntu 20 0 524380 269692 49360 R 8.3 0.4 1:15.00 python
3294 ubuntu 20 0 524916 270384 49528 R 8.3 0.4 1:15.00 python
3295 ubuntu 20 0 485528 230932 49356 R 8.3 0.3 1:15.00 python
3296 ubuntu 20 0 483012 228416 49536 R 8.3 0.3 1:15.00 python
3297 ubuntu 20 0 447140 192612 49580 R 8.3 0.3 1:15.01 python
3299 ubuntu 20 0 448776 194252 49688 R 8.3 0.3 1:15.00 python
3300 ubuntu 20 0 442656 187712 49300 R 8.3 0.3 1:14.99 python
3301 ubuntu 20 0 445364 190980 49580 R 8.3 0.3 1:14.99 python
3303 ubuntu 20 0 447464 193128 49688 R 8.3 0.3 1:14.99 python
3398 ubuntu 20 0 44236 4156 3228 R 0.3 0.0 0:00.80 top
複数のpythonプロセスが1つのCPUコアに押し込められて、パフォーマンスが悪くなっています。
手持ちのローカル環境(MacBook Pro)では、このような挙動は起こりません。
原因と解決策がわかれば幸いです。