이 블로그 검색

2018년 11월 2일 금요일

HOMM3>석갑 스킬의 쓸모에 관한 글

1. 석갑과 관련된 각종 마법들을 먼저 서술하자. 

  • Lv1 Earth. 석갑 초급 방어력 +3, 중급이상 +6  
  • Lv1 Earth 방패 초급 근접데미지 감소 15%, 중급이상 30% (0.85, 0.7) 
  • Lv3 Air 공기방패 초급 원거리데미지 감소 25%, 중급이상 50% 
  • Lv2 Water 약화. 적의 공격력 -3, 중급이상 -6
여기서 석갑과 방패는 각종 자원이 들지 않고 시청트리에 들어가는 마법길드 Lv1에서 등장하는데다가 흙마법이기 때문에 비교를 많이 당한다. 그렇다면 어떤 마법을 사용하는 것이 좋을 것인지 수치로 비교를 해보자 
2. 석갑에 효율 계산을 위해서 HOMM3의 기본 계산기를 가지고 와서 계산하도록 하겠다.  

이 계산에는 많은 것들이 생략되어 있다. 다만 방어술, 원거리 페널티, 성벽페널티 등은 복리연산이므로 별로 중요하지 않다는걸 말하도록 한다. 공격술, 증오, 행운 등은 계산 방식이 유사하므로 공격술  그래프를 참조하면 된다.

기본 계산은 다음과 같다. 기준은 내가 석갑 사용자일 때를 가지고 하도록 한다. <여러가지 모든 계산을 거치고 복리계산에도 한계점이 있지만 무시하자.>

기본 계산식은 기본데미지 =(공)[minDMG,maxDMG]*숫자 * A1*R1*R2

if ( (RDEF=방어력 - 상대공격력) > 0 )
       then
          A1= 1
          R1= MIN(1-0.025*RDEF, 0.3)
        else
                RATT=-RDEF
                A1 = MAX(1+ 0.05*RATT,4)
                R1 = 1
endif.

로 정해진다.
 
쉴드의 계산은 흙마법 중급이상일때 R2=0.7, 초급이하는 R2=0.85로 한다.


석갑의 계산은 중급기준 {A1*R1}(RDEF+3 or 6)/{A1*R1}으로 석갑마법이 걸리기 전과 비교해서 상대적으로 얼마만큼의 데미지가 감소될 것인지에 대해 계산한 양이다. 

이 계산식을 가지고 libreoffice calc를 통해 표를 만들고 차트를 그려보았다.
요 프로그램은 차트를 예쁘게 그리는 방법을 모르므로, 나중에 다시 gnuplot으로 예쁘게 그리도록 하고, 일단 올려보면 
  빨간색 선은 초급 석갑일 때의 그래프이다. 내 상대방어력이 20보다 크기 시작할 때, 초급 쉴드보다 효과가 좋은 것을 알 수 있다. 다만 상대방어력이 20보다 크기는 쉽지 않다. 대천사나, 대사탄으로 양학할 때는 쉴드보다 좋다.
 
노란색 선은 중급이상 석갑일 때 그래프이고, 같이 움직이는 검정선은 상대방이 공격술 고급일 때의 그래프이다. 행운, 중오 등도 동일한 형태로 살짝 이동한 형태로 그려진다.  상대방어력이 -19로 매우 낮은 상태일 때부터 초급 방패보다는 효과가 크게 그려진다. 다만 쉴드도 흙마법이기 때문에 큰 의미는 없다. 

  상대방어력이 0보다 클때는 검정선과 같이 움직이므로 상대방 능력은 석갑의 효율과 별 상관이 없다. 다만 상대방어력의 한계점 근처이다보니 계산식이  미분불가능한 영역이 있다.  상대방어력이 21,22일 때만 쉴드보다 강력한 기능을 발휘 한다.

재미로 Air shield를 포함했다. 가중치가 굉장히 크다보니, 상대방 궁수에게 계속 얻어맞는 상황이라면 어떤 마법보다 강력하다. 고급 공기마법은 근처에 가기도 힘들다.

중급 흙마법이 있고, 초급이하의 공기마법이 있다면 내 상대방어력이 16보다 큰 순간부터 공기방패보다 좋은 가치를 지닌다.

3. 결론. 
 히어로즈에서 궁수를 상대하는 기본 전술은 상대방에게 근접유닛을 붙이는데서 시작한다. 속도가 빠른 유닛이 없어서 화살공격을 맞아야 하거나, 하는 순간이 아니라면, 방패마법이 대부분 효율이 좋다.
(그리고 조금만 넘어가면 효율이 사라지므로(한계점이라) 그냥 방패쓰자)

  몸이 돌이 되지만, 몸으로 맞는거보다, 방패로 막는게 더 좋다. 다만 이미 돌처럼 단단한 자에게는 돌이 철이 되는 기적이 보여진다. 

  다만 보통 일반적인 상황에서 고급석갑 마법은 초급 방패마법 이상의 능력을 보이므로,(복리) 내파나, 연속번개, 메테오 같은 마법이 없다면 고급 석갑을 이어서 또 써주도록 하자. 
  고급 방어술이 15% 감소이므로 무시할만한 양은 아니다.

4. 번외. - 약화 등등 
상대방이 블러드 러스트가 걸렸을 때는 어떤 것이 효율이 좋은가. 
  그래프가 복잡하므로 여기에는 고급만 넣어서 보도록 하자. HoTA에 오우거 세트가 생겼으니 가끔 블러드 러스트를 겪을 수 있다. (??? 정말 가끔)

  약화는 석갑과 마찬가지로 상대방어력으로 계산하는 양이고 값도 동일하다 다만 흙마법이아닌 물마법이다. 요건 X축을 좀 줄였다. (X축이 부호가 이상하네.)
  고급 스톤스킨은 대부분의  고급방어술에 능력치 이상의 능력을 발휘했다.  블러드러스트 마법은 고급 공격술 정도의 가치를 가진다.

일상적인 상황에서 고급 방패보다. 효과가 있으려면 고급석갑과 고급약화가 동시에 필요하다. 그래서 방패 방패 하는 것이다. 하지만 두턴이나 필요하다는 사실을 기억하자. 방패가 없어도 지나가는 드래곤 플라이를 잡아다가 던져주는 방식을 쓰면 방패보다 강력할 수 있다.
  인챈터가 부대에 있어서 석갑이나, 약화를 사용한다면 냉큼 쉴드를 사용하자. 피해감소율이 마법쓰기 전과 비교했을때, 거의 절반에 육박한다.
  마법의 대지가 있다면, 지니 부대를 최대한 분배하자. 약화나 석갑만 나와도 매우 감사하다.
  한턴만에 데미지를 절반으로 감소할 수 있는 것은 쉽지 않다. 공격술과 방어술과 달리 이건 내 선택에 의해서 전투중 변화하는 부분이다. 

진 초록색 그래프는 블러드 러스트가 걸린 적에게 약화마법으로 상쇄시켰을 때의 데미지 변화이다. 
  상대방이 블러드러스트가 걸렸을 때 내가 어떤 마법을 쓸지를 비교하려면, 쉴드와 Blood>Weak를 비교해야 한다. 뭐 대략 일반적인 상황해서 방패보다. 매우 막강하다는 사실을 알 수 있으나 이런 일은 거의 없다. 블러드러스트 마법자체가 똥이다. 그래도 오우거 메이지가 사이클롭스 옆에 붙어 있는 상태로 다른 녀석에게 블러드러스트를 건다면, 냉큼 드래곤플라이 고기방패를 보내자. 

  Blood+Shield는 그냥 데미지가 어느정도 되는지 보기위해 넣었지 내가 방패를 쓸지 말지를 결정하는데는 큰 의미는 없다.

내가 약화 마법이 걸릴일은 없겠지만, 혹시 걸린다면 즉각 블러드러스트로 상쇄를 시켜주자. 저 그래프의 휘황찬란함을 보라. 마법쓰기전에 유닛위에 올려놓을 때 나오는 데미지 계산 범위가 단숨에 뻥튀기가 된다.

헤이스트나 슬로우는 워낙 중요한 마법이니까, 쓰는거지 적이 상쇄하면서 긍적적인 효과를 주는 마법은 HOMM3에서는 최대한 피해야 하는 마법이다.

  저주마법과 축복마법, 블러드러스트와 약화마법, 헤이스트와 슬로우는 상쇄가 되니 조심해서 써야하고,  헤이스트와 슬로우의 관계는 더 효과가 크다.
  이쪽은 그렇게 무섭다는 땅마법과 공기마법이다.



4. 사족. 내가 포트리스 유저라면, 드래곤 플라이를 아끼지 말아야 한다. 남는 칸은 드래곤플라이 1로 채워넣자. 그리고 반드시 가운데 칸은 드래곤플라이로 채워야 한다. 다른 녀석들은  두자리를 차지한다. 이 유닛을 소모해서 다른 유닛을 모으는게 포트리스 전략의 핵심이다. 적당히 줄여놔야, 성전투일 때도, 성이 쏘는 화살을 이 친구가 맞아준다. 





2018년 10월 24일 수요일

외교술이 게임 프로그램 내부에서 어떻게 작동하는가? (for HoMM III 3.2 & 4.0)

이 글은 http://heroescommunity.com/viewthread.php3?TID=28341 의 글을 구글번역기로 번역한 후 한국인이 읽기 쉽도록 수정한 글입니다.
일단 해당 글도 비판을 받은 부분이 있으니 잘 보시기를 바랍니다.

외교술이 어떻게 작동하는가? (for HoMM III 3.2 & 4.0)

(변수가 많아서 변수를 설명하고 있다. )

1. [Hero_Power]

영웅의 1차스킬 전투능력이 중요하다.
Hero_Power = sqrt ((1 + 0.05 * Attack) * (1 + 0.05 * Defense)); 

2. [Total_Army_Power]

영웅 군대의 총 힘은 영웅과 군대의 힘을 곱한 후 소수점을 버림으로 이루어진다. 
같은 수준의 군대라도 마력영웅이 조금 더 불리하다. 
Total_Army_Power = floor (Hero_Power * Army_Power); 

Army_Power는 아래 링크에서 Fight Value와 유닛의 숫자를 곱한 후 합한 값을 생각하자. 
http://heroes.thelazy.net/wiki/AI_value
점수만 보고 생각할 때, 피닉스가 주당 4기에서 2+1기로 HoTA에서 패치 되었는데, 
피닉스가 아니라 고스트드래곤에게 그런 기회가 와야한다고 생각한다. 아니면 해골변환기에서 좀비를 해골용 뼈 부속으로라도 변환이라도 좀 시켜줬으면... 


3. [k]

k = Total_Army_Power / Neutrals_Power;
 k 값은 서로의 군대의 전투능력의 비를 나타낸다.

4. [Power_Factor] (fixed)

Power_Factor = 11 if k >= 7;
Power_Factor = floor(2*(k - 1)) if 1 <=;= k < 7;
Power_Factor = -1 if 0.5 < k < 1;
Power_Factor = -2 if 0.333 < k <= 0.5; 
Power_Factor = -3 if k <= 0.333;

주의: 0.333은 333/1000을 의미하지 , 1/3을 의미하지 않는다. 
Now I am sure.(확신하단다)

 5. 동정이라고 번역되지만 동질감이 좀 더 해석이 용이 하겠다. [Sympathy]

영웅의 군대에 중립유닛과  같은 종류의 유닛이 존재하는가가 핵심이다. 0과 1사이가 굉장히 크기때문에 멍청한 컴퓨터의성을 점령한 후 주위에 남아있는 고위 유닛은 한마리라도 어디서 보충을 해서 공격하자.

Sympathy = 0 ;영웅의 군대에 중립유닛과 같은 유닛이 존재하지 않을 때.

Sympathy = 1 ;적어도 한종류의 유닛이 중립유닛과 같은 종류일 때, 같은 종류라는 것은 업그레이드, 다운그레이드 관계에 있는 유닛을 말한다. 
Sympathy = 2 ; 같은 종류인 영웅의 유닛이 다른 유닛의 비해 압도적으로 많을 때 포트리스 군대이지만 놀이 압도적으로 많다면 중립 놀군대는 좀 더 영웅의 군대에 합류하고 싶어진다.  그 압도적인을 어떻게 수적 표현으로 나타낼지는 모른다. 
if total number of creatures (or their upgrades/downgrades) of the same kind as neutrals in hero's army are strictly bigger than number of all the other beings in the army;
주의 다음은 합류계산에만 작용한다. 
  길에 있는 중립유닛들 중에 모든 정령류가 들어갈 수 있는 유닛이 있는가 보다. 합류계산에 있어서 공기의 정령을 업그레이드 해서 계산할 때는 땅, 물, 불 정령은 할 수 없다.  그리고 폭풍의 정령을 다운그레이드해서 계산할 때도, 마그마, 얼음, 에너지 정령은 그렇게 하지 못한다. 2레벨 유닛이 숫자가 가장 많으니  컨플럭스를 만들면서 페널티를 준듯하다. 


6. [카리스마 (Ch)]  

Ch = Power_Factor + Diplomacy_Level + Sympathy;


7. [공격성 (X)] (작을 수록 합류)

X = -4 (always)  완전 중립
X = 10 (always) 야만적 중립 
X in [1,7] for 친근한 중립 
X in [1,10] for 공격적 중립;
X in [4..10] for 적대적 중립;
 정수일 것으로 생각된다. 이 값은 새로운 게임을 시작할 때, 저 값 사이의 값으로 난수발생기로 정해진다. 


이제 부터 계산에 들어간다. 

8. 카리스마가 공격성보다 약하면 싸운다.  (Ch

9. 카리스마가 공격성보다 크거나 같다면 다양한 선택지가 생긴다. (Ch>=X)

  • Sympathy + Diplomacy_Level + 1 >= X 이면 중립유닛이 공짜로 합류한다. (같은 수준의 전투력인 군대가 카리스마가 있다고 가정한다. 중요한 것은 이과 정은 9번과정을 거치고 나서를 말한다. 일단 군대로 겁박하는 것이 중요함.
  • 9-1이 아닐 경우 Sympathy + 2*Diplomacy_Level + 1 >= X, 외교술 레벨에 2를 곱한 후, 돈으로 합류를 요구한다. 여기에는 이 중립유닛을 사는데 필요한 총 gold를 말한다. 자원은 요구하지 않는다. 
  • 합류를 거절 했을 때,  Ch>X일 경우는, 중립유닛을 내쫓거나, 공격할 수 있다. 
  • 합류를 거절 했을 때, Ch=X일 경우는 공격당한다. 연립해서 구할 수 있다.  외교술 없이 비슷한 수준의 군대인데, 공짜로 합류한다는 경우나, 군대가 많이 약하지만 외교술로 어거지로 돈으로 구매해서 살 수 있는 경우, 거절하면 항복하거나 죽어야 한다는 것을 명심하자.
쉬움 난이도에서는 모든 영웅은 숨겨진 외교술 기술을 가지고 있다. 기술 없을 때 1, Basic일때 2, advance 및 Expert는 3으로 여전히 최대 3이다.  쉬움 난이도가 아닐 때는, 외교술이 없는 영웅은 계산식을 볼 때, 돈으로 중립유닛을 살 수 없다. 

그외 답변에서 알 수 있는 정보들, X값인 10일 때는 절 대 합류 할 수 없다.
동질감 (2) + 2*3(외교술 전문가) +1  = 9 < 10. 퇴각은 시킬 수 있다. 

2018년 9월 13일 목요일

구글은 android에 외장 메모리 모드 좀 다시 만들어 주면 안되냐...



윈도우는 어떤 형편인지 모르겠다만,

리눅스에서 v30으로 usb 3.0모드로는 mtp나 ptp모드가 작동을 안한다.


뭐 번들케이블이 usb 2.0 type c to usb 2.0 type a인것을 보고 그럴꺼라 생각은 했다만,


수많은 시도를 했지만 안되는 것으로 결론이 났다.


뭐 양쪽 칩셋이 3.0지원하는 칩셋이라 2.0으로도 초속 30MB/s가 나오는 상황이라 큰 불편은 없지만,

그래도 엄청난 속도를 기대하고 케이블을 샀음에도 사용하지 못하는 마음을 좀 알아달라...



LG는 ptp 모드에서 video capture나 image capture를 지원하도록 해봐라...
이런거는 보안 문제 때문에, 제조사가 아니면 못하는 부분인것 같은데,

애플은 quick time player로 이거 가능하다고 알고 있다. 

가능하면 LG gram하고만 그게 가능하게 해주던가...

스마트폰 카메라가 정말 좋은 상황이지만, 방송은 PC로 하는게 관리에 있어서 좋으니까 좀 같이 사용할 수 있게좀 해달라...

뉴스 홈페이지 댓글 관련 플러그인인 LiveRe는 광고 차단하면 작동하지 않습니다.


쿠키를 차단하면 로그인이 되지 않습니다.


광고를 차단하면 댓글을 작성해서 보내기를 누르면 내가 쓴글이 날라가고,
로그인이 안되어 있다고 하거나(로그인 되어 있으나)

그냥 버튼이 먹통이 됩니다.



그냥 이 사이트에서 일시중지 눌러서 글 쓰면 됩니다.

에드블록 말고도 광고차단 플러그인이 있을 수 있으니 신중하게 찾아보세요.

2018년 9월 11일 화요일

연합뉴스 기자에게 오보관련해서 이메일을 보냈습니다. <내용은 복사해서 본문에 첨부했습니다.>

Hyeok KIM

오보가 있어서 연락드립니다. 
1 개의 메일

김혁 2018년 9월 11일 오전 11:34
받는사람: jiks79@yna.co.kr

"왜 페트병 치우지 않는가"…일본 언론, 한국청소년야구팀 비판


위 기사에 "하지만 일본에서는 낯선 장면이다. 2018년 러시아 월드컵에서 일본 팬들은 관중석을, 일본 선수들은 라커룸을 깨끗하게 청소해 박수받았다."

이 부분은 일본언론 인용이 아니라 본인이 쓰신 부분입니다. 하지만 아래
중앙일보 기사를 보면, 선수들이 라커룸을 청소한 것이 아니라 
직원들이 청소를 했다고 일본선수가 해명을 했습니다. 
https://news.joins.com/article/22780370


오보를 들고와서, 일본을 띄우고 자국을 낮잡아보는 기사를 쓰는 이유가 
참으로 궁금합니다. 반드시 고치시길 바라겠습니다.

한국언론이 한국을 공격할 수 있고, 비판할 수 있습니다. 하지만 그 과정에서 오보를 가지고 활용을 한다면, 그건 악의적인 행동으로 보입니다. 
특히 세금을 지원 받는 언론이 그러한 행동을 한다면 반민족 행위입니다. 
--
Hyeok KIM ( Ph.D. Student )
Many-body physics Lab.
Department of Physics, Konkuk University
Seoul, 143-701, S. Korea

2018년 8월 14일 화요일

...호사카 유지 교수의 이야기 중에 놀란 점... 군내 위안소 관련...



역사적으로 군이 위안소를 군내부에 설치하고 운영한 나라는 나치독일과
일제뿐이다.

... ... ...


아이구.

2018년 8월 7일 화요일

SGE) Sun Grid Engine 사소한 Tip!! NFS server setting에 관하여...



자원이 모자란 연구실에서는 root도 node들 계산기로 집어넣어서

클러스터를 구성한다. 그러다보면 빨리 돌리고 싶어서, root node는

직접 disk에 접근하는 경우도 있다고 생각한다. 나같은 경우는

쉽게 docker image에 마운팅 시키려고, 다 똑같은 호스트 위치에 메인 디스크를 마운팅 시켜놓는다.

master node(root node)는 mount -o bind를 사용해서 했고, 나머지는 mount -t nfs를 사용해서 마운트를 했는데,


벌써 세번이나 master node에 계산이 들어간 부분만 transfer state에 빠져서 나오지 않는다.

나머지는 nfs-kernel-server가 (애초에 여러군데서 접근하도록 만들어짐) 관리해서 접근하고,  혼자 다른 방식이다 보니 발생한 결과로 보인다.

일단 master node도 nfs를 사용해서 접근하도록 교체하였다. 

... 아주 훌륭하다. 일단 아직까지는 문제가 없고, 100m 이더넷 스위칭허브에 연결된 원상스 뉴 계산용컴퓨터도 순서대로 하나씩 transfer state를 벗는 모습이 관찰되는 등 아주 잘 관리하고 있는듯 하다.


nfs랑 ... local disk 접근이랑 경쟁해서   local쪽이 죽어버리고 무한루프에 빠지는 거는... 좀 문제가 있는 것 아닌가??? nfs는 뭔가 프로토콜적으로 양보의 미덕을 발휘하기 때문으로 보이는데,


여기서 우리는 복잡한 교통일 수록 서로 양보할 수록 공리적으로 빨리진다는 사실을 알 수 있다. (????????? 이상한 결론이다. ))))))))))))



-0-----------------0--------------0---------------

일단 여러번 돌려보고 결과가 어떻게 되는지 살펴보자...


어차피 서로 충돌이라서 대기하고 있던 잡들이 작업들어갈 때는, 한번도 문제 생긴적은 없다. (어차피 동시에 안 끝나니까...)

아 초장에 잘 들어가야하는데, 왜 양보를 안해서 이상한데 걸리는건지...

뭐 이제 알았으니 잘 됐다.

2018년 8월 6일 월요일

Passmark 싱글 쓰레드 점수의 부질없음....


가장 빠른 친구를 1점으로 했고, LAMMPS 점수는 같은 프로세스의 LAMMPS 코드를 SGE로 돌리는데 걸리는 시간 분의 1로 점수로 생각한다.

일단 결과를 보면 Passmark점수와 실제 성능차이는 세대에 따라 확연히 차이가 난다.

근데 중요한건 nfs 서버가 6700 컴퓨터에 구축되어 있고, i7들은 기가비트 q8400은 100메가비트의 네트워크이다. 뭐 이쪽의 오버헤드가 굉장히 크기는 할텐데, 다른게 길어야 2일 걸리는 작업이 일주일 가까이 걸리는 이유가 될 것 같지는 않다. 일단 내 개인 소유의 기가비트 이더넷 카드를 연결해서 테스트 해보도록 하자.

대충 결론:
샌디브릿지로 오고 초기시대랑 후기 시대가 다르고, 그 이전 세대가 확연히 다르다. 

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님 퀄컴님.






가장 많이 본 글