1.
지난번에 Low Latency가 등장하는 배경과 기술적 흐름이라는 글의 연장선입니다.마지막에 언급하였던 하드웨어를 이용한? 기술을 좀더 상세하게 다루고자 합니다.
우선 Hardware Acceleration를 위키페디아에서 찾아보면 아래와 같습니다.
In computing, hardware acceleration is the use of hardware to perform some function faster than is possible in software running on the general purpose CPU. Examples of hardware acceleration include blitting acceleration functionality in graphics processing units (GPUs) and instructions for complex operations in CPUs. Normally, processors are sequential, and instructions are executed one by one. Various techniques are used to improve performance; hardware acceleration is one of them. The main difference between hardware and software is concurrency, allowing hardware to be much faster than software. Hardware accelerators are designed for computationally intensive software code. Depending upon granularity, hardware acceleration can vary from a small functional unit to a large functional block like motion estimation in MPEG2.The hardware that performs the acceleration, when in a separate unit from the CPU, is referred to as a hardware accelerator, or often more specifically as graphics accelerator or floating-point accelerator, etc. Those terms, however, are older and have been replaced with less descriptive terms like video card or graphics card.
이 때 하드웨어는? Field-programmable Gate Arrays (FPGAs), Graphical Processing Units (GPUs) 및 Multi-core Processors 등입니다.
2.
미국에서 매년 열리는 행사중에 HPC(High Performance Computing) on the Wall Street가 있습니다. 2008년도에 열린 행사때 주제중 하나가 Hardware Accelerator였습니다.
몇년전에 Hardware Accelerator에 대한 아이디어를 듣고 사람들은 ‘누가 이런 걸 필요로 해?’라는 의문을 가졌다고 합니다. 그리고 점점더 빨라지는 CPU가 시장의 변화에 대응할 수 있는 프로세싱과 throughput Speed를 맡을 것으로 예상하였습니다. 또한 accelerator의 핵심이 되는 FPGA는 자연과학이 아닌 영역에서 사용하기엔 생소할 뿐 아니라 효과적으로 사용하기 위해 필요한parallel-programming 기술이 요구되었습니다.
Throughput
1. 컴퓨터 기술에서, 스루풋은 주어진 시간 동안에 컴퓨터가 할 수 있는 일의 량이다. 역사적으로, 스루풋은 많은 프로그램들을 동시에 실행시키는 대형 사용 컴퓨터들의 유효성을 비교하기 위한 척도가 되어 왔다. 초기에는 하루에 끝낼 수 있는 배치 작업의 수를 스루풋에 대한 척도로 삼았다. 최근의 척도는 좀더 복잡한 작업의 혼합 또는 일부 특정한 컴퓨터 연산에 초점을 두고 있는 양상을 띤다. “MIPS당 비용”이 시간동안, 또는 제작자별 컴퓨팅 비용을 비교하는 기초를 제공하는 한편, 스루풋은 MIPS가 얼마나 많은 유용한 작업을 생산하는지를 이론적으로 말해준다. ? ? 컴퓨터 생산성의 또다른 척도는, 일정한 작업 부하를 가지고 하나 또는 일련의 배치 작업을 실행하는 속도, 또는 얼마만한 응답 능력으로 얼마나 많은 인터랙티브 사용자의 작업요청이 처리되는지 등을 나타내는, 퍼포먼스이다. 한 명의 인터랙티브 사용자가 작업 요청을 입력하고 나서, 응용프로그램의 응답을 받는 때까지의 시간을 응답시간이라고 부른다.? 벤치마크는 스루풋을 측정하기 위해 사용될 수 있다.2. 데이터 통신에서, 스루풋은 주어진 시간 동안 한 지점에서 다른 지점으로 옮겨진 데이터의 량이다.
그런데 상황은 180도 바뀌었습니다. 우선 Solace System이나 Exegy와 같은 회사들에 의해 Accelerator를 이용한 시스템들이 공급되기 시작하였고 초보자들도 쉽게 사용할 수 있도록 다양한 라이브러리등이 공급되었습니다. Accelerator의 가장 큰 장점은 대용량 데이타(Data Stream)을 보다 빠르게 처리할 수 있는 성능입니다. 현재 CPU기술에서는 불가능한 10기가의 데이타스트림을 Accelerator의 도움으로 처리할 수 있게 되었습니다.
또하나 Wall Street가 Accelerator기술에 환호하는 이유는 경쟁자들과 우월한 위치에 설 수 있도록 도와주기때문입니다. 경쟁자들과 같은 기술과 제품을 사용하지 않고 자신들만의 노하우를 이용하여 특화된 시스템을 구축할 수 있기때문입니다.
마지막으로 Accelerator의 장점은 통합을 통한 비용의 절감을 가능하게 합니다. NYSE/SIAC, NASDAQ, OPRA, ARCA등의 마켓데이타를 처리하던 여러대의 서버를 대신하여 Accelerator로 내장된 서버 한대로 모든 업무를 해결합니다. Datacenter에서 공간을 절약하고 전기요금을 줄일 수 있어 결국 IT비용을 줄이는 효과를 줍니다.
(이상은 Hardware Accelerators Are One Way to Help Wall Street, Companies Say 을 요약)
3.
FPGA를 이용한 시스템이나 기술을 간단히 살펴보도록 하겠습니다. 미국에선 FPGA냐 ASIC이냐를 두고 논쟁을 했다고 합니다.
Choosing FPGA or ASIC: The Financial Argument
FPGA에 대한 간단한 설명은 아래의 글을 참고로 하시길 바랍니다.
FPGA – extreme computation performance for finance
Accelerator를 내장한 시스템이 무엇인지를 아시려면 Exegy의 Ticker Plant라는 제품을 확인해보시길 바랍니다. 또다른 사례를 소개하면 HPC Platorm입니다.
The HPC Platform HPME is based on a PCI Express (PCIe) board with a Stratix II GX FPGA that interfaces to several other boards with embedded QDRII memory and a Stratix II FPGA for acceleration (algorithmic processing). These boards are interfaced via 144 x 1-Gbps LVDS channels. With up to eight integrated transceiver channels and support for high-speed, low-latency memory access via a QDRII memory interface, the development board provides a fully integrated solution for multi-channel, high-performance applications, while also using limited board space.
Targeting key applications in the financial marketplace, the HPME looks for low-latency including feed handling and complex event processing (CEP) for algorithmic trading strategies, as well as Monte Carlo options and derivatives pricing and risk computations. Using full hardware processing, the HPME achieves performance with a latency of 1.1 to 2.0 microseconds in market data processing, including orders book management.
4.
Multi Core를 이용하는 기술이나 GPU를 이용하는 기술은 다양하게 소개되고 있습니다.
얼마전 Intel에 합병된 Rapidmind라는 회사는 Multi-Core와 GPU를 이용하여 원하는 프로그램을 개발할 수 있는 환경을 제공하는 도구를 판매하고 있습니다.? 물론 OpenMP(OpenMP API specification for parallel Programming) 를 이용하여도 됩니다.그래픽카드 제조업체로 유명한 Nvidia는 CUDA라는 개발환경을 제공하여 GPU를 이용할 수 있도록 도와주고 있습니다.
이상의 기술이 국내에 적용될 수 있을지를 생각해보았습니다. 금융기관의 자기거래 혹은 투자(Proprietary Trading)나 사모펀드(헤지펀드)등의 투자시스템에 적용해볼 수 있다고 생각합니다. 이런 시스템의 경우 차별화가 곧 투자전략 혹은 알고리즘이기때문에 Accelerator에 내장된 형태로 서비스가 제공되면 나름의 틈새를 확보할 수 있다고 판단합니다.
미국의 유명한 컨설팅업체인 Tabb Group이 발간한 보고서 ‘Hardware Acceleration: Traders and Teraflops’를 보면? 이런 표현이 나옵니다.
“The Hardware acceleration is the hybrid car of trading systems. Choosing financial-services hardware today often feels like having to choose between driving a Corvette or driving a Prius”
Home Trading System에서 벗어나 목적에 부합하고 차별화할 수 있는 트레이딩시스템을 구축할 기회가 있기를 바랍니다.(^^)
우연히 지나다가 보게되었는데 제 관심사군요. HFT에서 네트워크 delay가 critical하다는 뉴욕타임즈 기사를 읽었었는데 여기서도 언급하시는군요. 금융쪽 소프트웨어 하시나봐요? 저는 HPC쪽을 연구했던 사람입니다. ^^;
HPC를 전공하셨다고 하니까 내공이 깊으시겠군요^^ 저는 증권IT일을 하는데 요즘 관심사가 HPC와 관련된 여러가지 기술입니다.CEP/ESP, RDMA와 관련된 기술, Parallel Computing과 관련된 기술등을 분석해서 실제로 금융업무에 적용시킬 수 있을지 검토하고 있습니다. 사실 이미 Wall Street에서 진행되고 있는 일이라 한국 환경에 적합한 제품을 만들면 되는데…아직은 아이디어수준에서만 있습니다..
나이들어서 공부하려니까 힘드네요^^
안녕하세요. 이쪽에 관심 있으신 분들이 많으시네요..저는 국내 운용사에서 근무하고 있지만 이쪽분야에 관심이 많아서 올려주시는 좋은 글들을 열심히 읽고 있는 독자입니다. 제가 현업에 있는 동안 지금 연구하시는 분야가 잘 활용될 수 있도록 후배들에게 길을 닦아 주고 싶은데 늘 마음만 앞서서 고민입니다. 어떻게 회사에 수익을 안겨줄 수 있는지도 같이 고민을 해야 하는 처지라서… 앞으로도 좋은 글들 많이 부탁드리겠습니다
안녕하세요…말씀중 ‘연구’라는 단어는 부적합하고 그냥 정리(?)라고 함이 좋을 듯 합니다.
독자라는 표현이 은근히 재미있네요…독자라~~~~(^^)
잘 읽어주셔서 감사드리고 댓글도 달아주시니 너무 고맙습니다.
누군가의 한걸음이 다른 사람의 한걸음이라도 이끌어 낼 수 있다면 좋은 글쓰기라고 생각합니다. 그것이 글쓰는 사람이 기쁨이 아닐까 합니다.
봄볕이 화사합니다. 따뜻한 햇살이 항상 가슴에 가득하시길…