 |
braincell
Registered: Jul 2011
Posts: 538 |
02-28-12 04:09 PM
I'm just curious if there are any coders here that worked in ASM (MASM, NASM whatever)?
It's obvious that the high end applications will need ASM to have a technical edge. This includes:
Online: market making, arbitrage
Offline: data mining
I've also heard of many speed critical programs being developed by well funded teams not using ASM and was wondering why? It can and usually does outperform the best compilers by at least 5 times in various tasks in terms of execution speed. There seems to be a lot of room for improvement there, and I was wondering if I am in fact misguided and ASM is really much more widespread in various trading applications?
|
| |
|
Edit/Delete • Quote • Complain |

slumdog
Registered: Jan 2012
Posts: 137 |
02-28-12 04:37 PM
I doubt the bottle neck is the code. The speed gained up from coding in assembly over C or C++ is probably inconsequential compared to the network communication overhead and disk writing. So spending that extra time and money on hand optimising the code doesn't provide enough of a pay off.
Having said that it is easy enough to embed assembler into a C or C++ function if you really need to, its __asm in visual c++ iirc.
|
| |
|
Edit/Delete • Quote • Complain |

byteme
Registered: Dec 2008
Posts: 557 |
02-28-12 05:03 PM
Quote from braincell:
It's obvious that the high end applications will need ASM to have a technical edge. This includes:
Online: market making, arbitrage
Offline: data mining
Online: sure, you can optimize inner loops with ASM just like 3D gaming engines but with trading systems greater gains can be had elsewhere e.g. tackling network latency.
You can also make use of hardware e.g. FPGA
Offline: not an issue.
|
| |
|
Edit/Delete • Quote • Complain |

NetTecture
Registered: Mar 2009
Posts: 1010 |
02-28-12 05:21 PM
Quote from byteme:
Online: sure, you can optimize inner loops with ASM just like 3D gaming engines but with trading systems greater gains can be had elsewhere e.g. tackling network latency.
Wrong millenium. Gaming engines inner loops today run on programmable graphcis cards.
Also optimizing looks is realyl hard in assembler since you have superscalar architecture. Intel has a tool out that can push your assembler performance by reordering the commands so they execute in parallel. This stuff is getting terribly complex, with multiple commands executing at the same time IF the cpu can do it (no dependencies, using different registers etc.).
Makes little sense to go assembler except for VERY rare occasions. C is nearly as good and a magnitude or two faster in development.
|
| |
|
Edit/Delete • Quote • Complain |

braincell
Registered: Jul 2011
Posts: 538 |
02-28-12 05:37 PM
Quote from slumdog:
I doubt the bottle neck is the code. The speed gained up from coding in assembly over C or C++ is probably inconsequential compared to the network communication overhead and disk writing. So spending that extra time and money on hand optimising the code doesn't provide enough of a pay off.
Having said that it is easy enough to embed assembler into a C or C++ function if you really need to, its __asm in visual c++ iirc.
Consider this however. Everyone is colocated, has the top of the line networking, and the fastest SSD disks money can buy. What's left? The code obviously. My assumption is that technical hardware issues are almost always fully resolved and pushed to their limits by all of the players. I'm saying is that i suspect there can be much more gained by optimizing code, and perhaps it's the only "edge" left to have for the HFTs and some arb strats.
|
| |
|
Edit/Delete • Quote • Complain |

braincell
Registered: Jul 2011
Posts: 538 |
02-28-12 05:39 PM
Quote from byteme:
Offline: not an issue.
Oops, you sure you know what you're talking about? Have you ever tried developing search algos and data mining? There are multiple papers written about those, and just doing research still requires a hefty data centre. Many researchers will rent out some time on the cloud or buy their own data centers. Some of these deep data mining techniques may require days, weeks and even months of running on todays harware to get significant results.
Offline data mining is one of the main reasons i became good at assembler and i can tell you my applications are beating those used by some hedge funds at least 2x in terms of speed - meaning you need 2x as little hardware for the same results, and this is a time and cost saving. I can probably improve that even further, but never mind that.
|
| |
|
Edit/Delete • Quote • Complain |

| Receive
an email whenever a new post is added to this thread by subscribing
to it. |
|
|
|
|