이 블로그 검색

2018년 7월 27일 금요일

SGE) Sun Grid Engine 연구실 컴퓨터로 재구축..

보이는가 아래와 같이 영롱한 모습의 클러스터 컴퓨터가 완성되어 있는 것을..


일단 my.q라는 queue에 모든 컴퓨터를 박아 넣었고,
hostgroup으로 @fast 에는 내 데스크탑컴퓨터인 i7 6700 pc를  넣고,
잡이 비어 있을때는 가장 먼저 여기에 넣도록 설정했다.
  다음으로 @fastold에는  i7 970 pc와 i7 2600 pc를 집어넣었고,

위  세개의 컴퓨터들은 모두 iptime N6004 연구실 공유기에 직결되어 있다.
(... 허브를 사야하는데,... )

그리고 @old 에는 그냥 옛날 cpu가 들어가 있다.  q8200으로 예상한다.
이 친구는 공유기에 포트가 부족해서 100Mbps 스위칭 허브를 통해서 분배를 하도록 되어 있다. 

일단 master에 nfs-server를 구축을 해서 data를 쓰고 있어서,
빠른 친구들 간에들 그럭저럭 속도가 나오는 편이고,

느린친구들은 cpu를 쓰면서 기가비트 네트워크를 쓸 여력이 없을 것이라, 자위하며 그냥 쓰고 있다. 일단은 이번에 재료비를 다 쓴 상황이라... 내 돈을 쓰던가 해서 8포트 기가비트 허브로 연결을 목표로 하고 있다.

돈을 조금만 더주면 16포트 기가비트 허브 중고를 구할 수 있지만,
폐기처분 되는 권교수님 업체 클러스터에 있는거 들고와서 뜯어 보고 나서는 ... 중고를 쓰고 싶은 마음이 없다.

너무 열심히 사용된 나머지,

내부 방열판 고정핀들이 다 부서져 있는 상황인 것을 보았기에 아마 그런 마음이 드는 듯 하다.  아무래도 PC가 멀쩡할지는 모르겠지만, 제대로된 관리자가 없는 상황이다 보니, 아주 짧은 시간만 쓰고 409호에 처박혀 있었던 것으로 보인다.  409호는 오래된 이과대 친구들은 다 아는 먼지가 아주 많은 창고방이다.

저 위에 있는 @old라는 호스트 그룹에 속한 컴퓨터 친구들이 저 먼지 구덩이 속에서도 현역으로 잘 굴러가고 있었던 것으로 생각하면,  상용서버들이 저모양으로 있던건 아무래도... (오래전부터 꺼져있었다지...) 관리의 문제가 아닌가 싶다.

그냥 허브를 새로 사거나 업체를 불러서 진단을 받았으면 계속 쓸 수 있었을 텐데... (클러스터 두동이면... 가격이 못해도 수천만원 ㅎㄷㄷ )

연구실내에 직접 관리할 수 있는 인원이 없는 이상은 비싼 돈주고 구축해봐야 소용이 없다는 것을 배우는 것인지 뭐 잘 모르겠다.


2018년 7월 23일 월요일

2012년 T24 사건 까지도 벌레라는 단어를 그냥 평범하게 사용했는데, 신기하네...



일베충이란 단어가 나온 이후로, 한국에서는 개라는 단어의 자리를 충이란 던어가 차지해 버렸음....




T24 사건 추억이다.

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




2018년 7월 12일 목요일

정말 쒰이다. c++에서 bool type에 1대입하면 false --_____----;





음 아무래도... 역시 casting은 확실한 것 아니면 하지 말아야...



... 더럽네... bool이 int로 캐스팅 될 때는, true -> 1 로 false가 0으로 갈텐데..


int가 bool로 캐스팅 될때는 왜 또 개판인겨...


getopt 로 flag 만들어서 뭔가 할라고 했을 뿐인데...

다음부터는 그냥... c++이던간에 c던간에 나중에는 걍 int 타입으로해서
확실히 먼가를 얻던가 해야지...




flag_v = 1 이란 코드 이후


flag_v 가 false일 줄은 몰랐지.................................

2018년 7월 3일 화요일

V30 번들 데이타 케이블을 쓰면서 느끼는 새로운 기분.



V30번들 케이블은 알다시피, usb type-c to usb type-a usb 2.0 케이블이다.


플래그쉽 스마트폰에 들어가있는 기능만 못한 케이블을 주다니, 아쉽지만
QC3.0 충전이 제대로 되는 것에 일단 감사하자.

뽑기 운이겠찌만 삼성폰을 쓰는 사촌동생(남자)는 번들케이블이 충전단자가 서로 안맞아서 충전이 어려워 다른 사람 것 쓰던 일도 있었으니 이정도면 만족해야지...


오늘 테스트해보다가 깜짝 놀란 사실이 있다.

usb 2.0 케이블로 알고 컴퓨터에 연결(linux desktop)하여 동영상 파일을 핸드폰에 넣는데, 오랜만에 내부저장장치에 공간이 있어서 거기에다가 집어 넣었다.


대량 평균속도가 38MiB/s정도가 나온다.  ... ... ..

놀라서 확인해보니 컴퓨터에 usb 2.0모드로 연결된 것이 맞다. (480MBit/s)
<<<
인터넷에 여기저기를 보면, usb 3.0 sd 카드리더기에 uhs-i 속도가 지원되는 카드를 연결해서 테스트 할 때, usb 2.0포트에 연결할 시, 30MB/s언저리에서 노는 모습들을 많이 볼 수 있다.

거기다가 여기저기서 MTP가 오버헤드가 많아서 불편하다느니 여러가지 이야기들을 볼 수가 있다.
>>>
흔하지 않는 모습이다라는 거다.


일단 저 속도는 USB 2.0이 128(payload)개씩 묶으면서 패킷을 보내고, 전적으로 한 디바이스만 다룰 때 나오는 속도이다.
https://superuser.com/questions/317217/whats-the-maximum-typical-speed-possible-with-a-usb2-0-drive
를 참조해보자.

일단 최신 안드로이드의 mtp드라이버가 매우 훌륭하다는 것은 확실하다.
일단 예전보다. 구린 케이블을 썼을 때, 지혼자 끊어지는 일이 많이 줄었다.
예전에는 구린케이블을 쓰면 지원하지 않는 파일이라는 메세지가 윈도우에서 뜬적이 있다. ... 좋은 케이블 쓰면 아무 문제가 없는데 말이다.


거기다 양쪽다 usb 3.0을 지원하고, 케이블만 2.0이다 보니, 양쪽의 칩 모두 열심히 일할 여력이 충분하다. 그렇기 때문에 이러한 결과가 나온 것으로 보인다.  일단 스냅드래곤도 칭찬한다.


그러면 왜 usb 2.0 포트에 연결한 usb 3.0 메모리 카드가 30MB/s 밖에 안나올까? 그건 간단하다. 그 제품의 칩은 usb 3.0 모드일 때, 더 많은 전력을 쓰도록 설계되었고, usb 2.0포트에 연결될 때는, 그에 따라 전력을 덜 쓰는 새로운 모드를 사용하도록 설계가 되어 있는 것으로 추측된다.


하지만 스마트폰은 자체 배터리로 전력을 충당하므로 그럴 필요가 없다. 그런데 왜 옛날 폰은 내부 메모리로 전송함에도, 사용할 때는 SD보다 빠르지만 전송 속도는 그놈이 그놈이었을까??     
  이건 퀄컴이란 제조사놈이 칩 설계를 그렇게 해놓은 거다.



아이고, usb 3.0 지원 케이블을 사야하는데, 비싼 건 돈이 아깝고, 싼건 거짓말처럼 usb 2.0으로 인식될 것 같아서 뭘 할 수가 없다. 

V30 내부 sd 카드 슬롯은 uhs-i ii 인지 모르겠네, 빠른거 쓰고 싶은데,

데이타 시트 좀 제대로 공개 부탁요 LG님 퀄컴님.






가장 많이 본 글