1.
회사를 나와 Low Latency를 조사할 때 쓴 글이 있습니다.
2000년대 CPU기술과 소프트웨어 구조가 어떻게 발전해왔는지를 이해하려고 정리했던 글입니다. 이 때 “Free Lunch is over”를 머리속 깊이 새기고 이후 멀티코어와 병렬컴퓨팅을 화두로 파트너와 협력을 하였습니다. ZeroAOS를 설계할 때도 CPU의 구조에 최적화하도록 노력했습니다. 물론 아직 ZeroAOS가 최적화한 소프트웨어 구조를 가지고 있지는 않습니다. (^^)
이런 생각에 의문을 제기하는 사건들이 있었습니다. 증권사 BMT 결과 “최신 CPU 보다는 CPU클락수가 높았던 구모델에서 더 좋은 성능을 내었다는 결과를 들었을 때”입니다. 이 때도 CPU에 최적화하지 못한 소프트웨어 구조의 결과라는 생각도 속으로 했습니다. 그러다 12년 가을이후 해외사이트에 올라온 글을 보면서 미묘한 변화를 느꼈습니다. 어느 때부터인가 CPU 속도를 말하면서 5.0Ghz가 등장하였기때문입니다. 오버클락이라고 생각하고 넘겼지만 호기심에 불을 붙인 문장이 있었습니다.
The new general Intel 26xx processor range at 2.9GHz has been shown to have the same capability of its 4.GHz cousin for trading applications when tuned to maximise its single threaded performance away from the default spaghetti code tuning.
멀티코어환경에서 CPU클락을 높이는 방법, 이름하여 CPU Acceleration이 주제입니다. 이 말은 제가 만든 말이 아니고 Dell가 주최하는 Webnar에서 사용한 단어입니다. 의미를 정확히 전달하는 말이라 저도 사용합니다.
2.
CPU Acceleration이전에 이미 알고 있는 상식과 상식에 반대하는 반상식을 알아보죠. 2005년을 전후하여 CPU 제조업체들은 단일CPU의 속도를 높히는 전략을 포기하여 여러개의 CPU를 넣는 멀티코어전략으로 선회합니다. 이후 상식은 CPU 속도는 정체하거나 하락하고 있다는 것입니다. 아래 single-threaded CPU performance를 비교한 그래프를 비교해 보시죠. 제가 좋아하는 블로그에 올라왔던 그래프입니다. 첫째는 매우 유명한 그래프입니다.
A Look Back at Single-Threaded CPU Performance
Single Threaded CPU 성능은 계속 늘고 있다는 상식과 반대의 결론을 내리고 있습니다. CPU Acceleration도 이와 관련이 있을 듯 합니다. CPU Acceleration을 주장하는 곳은 Dell입니다. Dell Processor Acceleration Technology(DPAI)라고 합니다. 독자기술이지만 기반은 Intel의 Turbo Boost Technology입니다.
DPAT를 정리하면. 인텔이 Xeon 프로세서중 비표준형(코드명 Everest)를 HFT용으로 출시했고 델은 고객에서 판매를 했다고 합니다. 그런데 가격 대비 성능을 비교하니까 비 효율적이었습니다. 그래서 Dell이 동적으로 동작하는 Turbo Boost기능을 일정한 속도와 코어수가 고정으로 동작하도록 변경하였습니다. 이 기술이 DPAT입니다. 방법은 BIOS에서 Turbo Boost와 관련한 항목을 선택합니다. 다른 작업이 필요없습니다. 이 기술을 적용한 결과 Xeon E5-2690 processor (2.9GHz)는 3.8GHz/single core, 3.6GHz /dual core 그리고 3.4GHz/ 4-cores를 보여준다고 합니다.
Dell tunes up servers for high freaky traders
Turbo Boost 기술은 Dynamic Overclocking이라고 할 수 있습니다. 반면 흔히 사용하는 오버클락은 Static Overclocking입니다.
일반 이용자가 오버클락를 하려면 긴 노력과 시간이 필요합니다. 경우에 따라서는 시스템의 수명을 짧게 하면 손해를 보는 경우도 있습니다. 이런 문제점 때문에 오버클락을 손쉽게 선택할 수 있도록 도와주는 서버가 나왔습니다. 보드 제조업체로 유명한 Supermicro가 내놓은 hyper Speed Server입니다. 오버클락하는 방식은 앞서 델과 비슷하게 BIOS를 통해 이루어집니다. 자세한 설명을 Supermicro Hyper-Speed Server BIOS을 참조하세요.
이와 다른 서버도 있습니다. 냉각기술로 승부하는 서버입니다.LinkedIn에 올라온 것으로 5.0Ghz를 제공한다고 합니다.
The Fastest Rack Mounted Servers in the World
3.
이상의 CPU Acceleration을 보면서 “그동안 멀티코어와 병렬을 강조하던 흐름이 왜 ‘속도’로 넘어갔을까” 하는 의문이 들었습니다. 해답은 Throughput과 Latency의 상관관계이었습니다. 제가 알고 있는 미국 고빈도매매의 조건은 Throughput과 Latency가 모두 필요합니다. 주식거래를 하고자 할 경우 초당 최대 육백만건의 시세데이타를 처리하여야 합니다. 그러면서 남 보다 빨라야 합니다. Throughput와 Latency를 모두 충족하여야 합니다. 그렇지만 이런 고객들이 미국이라고 무한은 아닙니다. 더구나 HFT 경쟁과 규제가 커지면서 HFT고객이 작아집니다. 대책이 필요합니다. 바로 Latency만 필요한 고객들입니다. 굳이 대용량의 데이타를 처리할 필요가 없는 전략들입니다. 대신 빨라야 합니다. 잠재시장의 고객들의 요구에 부응하는 전략이고 기술적 뒷받침입니다.
이를 한국에 적용하면 어떨까요? 한국자본시장의 시장데이타는 초당 만건을 넘지 않습니다. Throughput을 논할 필요가 없습니다. 그렇지만 Latency는 중요합니다. 멀티코어 보다는 속도에 강점을 갖는 서버들이 더 적합한 시장환경입니다. 다시 CPU속도가 중요해지지 않을까 생각합니다.
마지막으로 Low Latency를 위한 가이드를 소개합니다. Intel이 STAC에서 발표한 자료중 한 부분입니다. 눈 여겨 보시길 바랍니다.