더 높은 속성을 가진 시스템의 낮은 성능

더 높은 속성을 가진 시스템의 낮은 성능

저는 Linux Mint 18.1을 실행하는 두 시스템을 테스트하고 동일한 프로그램을 실행했습니다.

시스템 1에는 다음과 같은 특징이 있습니다.

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 23
Model name:            Intel(R) Core(TM)2 Duo CPU     E7500  @ 2.93GHz
Stepping:              10
CPU MHz:               1603.000
CPU max MHz:           2936.0000
CPU min MHz:           1603.0000
BogoMIPS:              5866.45
L1d cache:             32K
L1i cache:             32K
L2 cache:              3072K
NUMA node0 CPU(s):     0,1
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm
          `   total        used        free      shared  buff/cache`   available
Mem:           5967        1809         835          88        3321        3750
Low:           5967        5131         835

시스템 2:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                12
On-line CPU(s) list:   0-11
Thread(s) per core:    2
Core(s) per socket:    6
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 63
Model name:            Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz
Stepping:              2
CPU MHz:               3399.902
CPU max MHz:           3600.0000
CPU min MHz:           1200.0000
BogoMIPS:              6596.24
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              15360K
NUMA node0 CPU(s):     0-11
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc cqm_occup_llc dtherm ida arat pln pts

              total        used        free      shared  buff/cache   available
Mem:          48203        5957         388         138       41857       41600
Low:          48203       47814         388

프로그램 타이밍은 다음과 같습니다(실시간):

system 1    2 cores          ~30  seconds
system 2    6 cores          ~120 seconds

더 나은 사양의 시스템 2가 성능이 낮은 이유에 대한 답을 찾을 수 없습니다. 시스템 2에는 8개의 유휴 코어가 있습니다. 일부 Matlab코드는 다른 4개 코어에서 실행됩니다. 또한 이 과정에서 여유 메모리가 충분한지 확인했습니다.

편집하다: 내 프로그램은 와 평행한 간단한 오일러 적분입니다 OpenMP. 입력/출력이 많지 않습니다. export OMP_NUM_THREADS=6시스템 2 터미널의 스레드 수를 제한했습니다 . 프로그램이 내 로컬 시스템에서 실행됩니다. Matlab 코드가 무엇을 하는지 전혀 모릅니다. 이것은 공유 컴퓨터이며 SSH를 사용하여 액세스합니다. 이러한 세부정보가 도움이 되기를 바랍니다.

나는 2개 및 6개의 스레드로 또 다른 타이밍을 수행했습니다.

system 1     2 threads   52 seconds 
system 2     2 threads   54 seconds
system 2     6 threads   4 minutes and 22.3492 seconds
system 3     6 threads   19 seconds

시스템 3은 다음과 같습니다.

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 60
Stepping:              3
CPU MHz:               800.000
BogoMIPS:              7982.20
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K
NUMA node0 CPU(s):     0-7

프로그램에는 문제가 없는 것 같습니다. 시스템 2가 의심스럽습니다.

편집하다 최근 우리는 시스템 2에 2개의 16GB RAM을 추가했습니다. openmp는 서로 다른 RAM 슬롯에 메모리를 할당하고 RAM 간의 통신으로 인해 프로세스가 매우 느려지는 것 같습니다. 프로그램이 하나의 RAM 슬롯에서만 메모리를 할당하도록 강제하는 방법이 있습니까?

관련 정보