이 블로그 검색

레이블이 bzip2인 게시물을 표시합니다. 모든 게시물 표시
레이블이 bzip2인 게시물을 표시합니다. 모든 게시물 표시

2018년 7월 20일 금요일

원상이 워크스테이션 ryzen5 2600으로 변경.(pbzip2 test)

SMT(하이퍼쓰레드) 성능이 과장인가 쓸만한가 확인을 해봄.




pbzip2  bzip2


/tmp$ time tar -I pbzip2 -cvf a.tar.bz '(alpha=1,d='*  (alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat

real    0m17.179s
user    3m13.663s
sys     0m4.838s

/tmp$ time tar -I bzip2 -cvf a.tar.bz '(alpha=1,d='*      (alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat

real    2m16.867s
user    2m16.205s
sys     0m2.733s
일단 bzip2 pbzip2 테스트에서는 따로 프로세서 개수 같은 옵션을 주지 않아도 적당히 잘 최적화해서 돌아감.  

일단 대략 6C/12T에서 8배 정도의 성능 이득을 보고 있음.
(원상이 결과파일이 어떻게 생긴지 관심이 없지만 일단 bzip이나 gzip이나
둘다 465MB로 압축이 되므로 딱히 이거 쓸 이유는 없음)

pigz /gzip


/tmp$ time tar -I pigz -cvf a.tar.gz '(alpha=1,d='*  (alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat

real    0m5.315s
user    0m37.190s
sys     0m2.640s
/tmp$ time tar -I gzip -cvf a.tar.gz '(alpha=1,d='*      (alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat

real    0m20.482s
user    0m19.309s
sys     0m1.886s
/tmp$ time -p  tar -I 'pigz -p 10'  -cvf a.tar.gz '(alpha=1,d='*  (alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat
real 3.90
user 32.34
sys 2.09
bzip2 계열과 다르게 여기는 알고리즘이 어떻게 되어 있는지 모르겠지만, 병렬효율이 지나치게 떨어짐. 6C12T로 4배정도의 성능 이득 밖에 없음.  근데 원래 빠른게 더 빨리 끝나는거라. 그리 나쁘지 않음. 
  그래도 코어수보다 성능이 떨어지길래 테스트 해본결과 processor 개수를 10개까지 늘리는 동안에는 조금이라도 빨라지기는 함.  이 테스트는 효율이 워낙 떨어지다보니 외국 포럼에서 해석하기로는 가상코어를 코어수로 인식하지 못하는게 아닌가 라는 추축이 있었서 진짜 그런가 확인해 본 것임.  불도저나 옛날 코어 시리지에 대한 글이긴 했지만... 나도 느리길래 한번 해본것 

일단 코어하나만 써도 pigz쓰면 15%정도의 오버헤드가 생기고, 효율이 극히 떨어지고 뭔가 성능변화도 연속성이 이상함. 아무래도 pigz 코드에 뭔가 이상한게 많이 있나봄. (뭐 한계속도인듯 나중에 다른해석도 있음)


일단 알 수 있는 것, 적당히 잘 짠 코드의 경우, 6C12T 라이젠의  경우  8배 정도의 성능이득이 있음. (그냥 압축파일 짜르는 사이즈 마다 나눠놓고 각자 쓰레드에 일 맡기는 거라 효율이 좋을 수 밖에... )

원상이 코드 기준으로 눈대중으로 q9550보다 대략 2~2.5배 정도 빠름. 
10년도 더 된 cpu랑 비교해서 미안하지만 원상이가 계산 느리다고 해서 산거니까... 충분히 이득...   
비교대상은 윈도우에서 visual c로 Realease한 거랑 gcc로 optimize option 안주고 한거를 비교한거라, -O3, -O2정도면 3배까지도 차이날 수 있음. 

걍 때려박는 성능차이가 2배정도 나고, 세대차이로 인한 명령어 차이가 또 한 1.5배 해서 차이가 나는 것으로 예상됨. 


음 pigz가 pbzip2의 비해 병렬 효율이 매우 떨어지는것 처럼 보여도, pigz를 쓰는게 건강상 좋음. ..(일단 결과가  2.5GB의 데이터이기 때문에 이미 디스크 한계속도의 도달한거라 저 오버헤드는  sata3로 연결된 SSD의 오버헤드일 가능성이 크긴함... 이라고 생각했으나 작업 장소가... /tmp라서... 그냥 구린건가... 
사이즈가 워낙 크니까 /tmp가 어떤식으로 구성이 되있는지를 모르니... 

그냥 빨리 끝나니까 프로세서수 생각하지말고 pigz로 압축하자... 대략 30기가에 1분이라고 생각하면 겁나 빠른거니까... 1분이 4분이 되고, 1시간이 4시간이 된다고 생각하면 이거 쓰게 되어 있음. 



---------------------------------------------------------------------------





wslee@wslee-MS-7A37:/tmp$ time -p  tar -I 'pigz -p 12'  -cvf a.tar.gz '(alpha=1,d='*
(alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat
real 5.47
user 37.23
sys 2.74
wslee@wslee-MS-7A37:/tmp$ time -p  tar -I 'pigz -p 1'  -cvf a.tar.gz '(alpha=1,d='*   
(alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat
real 23.30
user 22.34
sys 1.75
wslee@wslee-MS-7A37:/tmp$ time -p  tar -I 'pigz -p 4'  -cvf a.tar.gz '(alpha=1,d='*  
(alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat
real 6.55
user 24.53
sys 2.64
wslee@wslee-MS-7A37:/tmp$ time -p  tar -I 'pigz -p 5'  -cvf a.tar.gz '(alpha=1,d='*  
(alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat
real 5.66
user 25.80
sys 2.25
wslee@wslee-MS-7A37:/tmp$ time -p  tar -I 'pigz -p 8'  -cvf a.tar.gz '(alpha=1,d='*  
(alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat
real 4.29
user 29.35
sys 2.26
wslee@wslee-MS-7A37:/tmp$ time -p  tar -I 'pigz -p 10'  -cvf a.tar.gz '(alpha=1,d='*  
(alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat
real 3.87
user 32.25
sys 2.16
wslee@wslee-MS-7A37:/tmp$ time -p  tar -I 'pigz -p 12'  -cvf a.tar.gz '(alpha=1,d='*   
(alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat
real 5.78
user 37.36
sys 2.68
wslee@wslee-MS-7A37:/tmp$ time -p  tar -I 'pigz -p 10'  -cvf a.tar.gz '(alpha=1,d='*  
(alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat
real 3.89
user 32.44
sys 2.05
wslee@wslee-MS-7A37:/tmp$ time -p  tar -I 'pigz -p 11'  -cvf a.tar.gz '(alpha=1,d='*  
(alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat
real 4.03
user 33.52
sys 2.38
wslee@wslee-MS-7A37:/tmp$ time -p  tar -I 'pigz -p 9'  -cvf a.tar.gz '(alpha=1,d='*   
(alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat
real 4.07
user 31.06
sys 2.14
wslee@wslee-MS-7A37:/tmp$ time -p  tar -I 'pigz -p 10'  -cvf a.tar.gz '(alpha=1,d='*  
(alpha=1,d=2)Hatree_theta_data.dat
(alpha=1,d=3)Hatree_theta_data.dat
(alpha=1,d=4)Hatree_theta_data.dat
real 3.90
user 32.34
sys 2.09




가장 많이 본 글