Chris Donnan : Programming – Brooklyn Style
software, trading, family, fun
Posted C++, mac on Saturday, November 19th, 2011.
Good instructions here, but too much klunking around….
On Lion, will need to download:
- GCC 4.2 to compile with – lion uses llvm so you need to compile 4.6 with 4.2
- the new GCC itself here ftp://ftp.gnu.org/gnu/gcc/gcc-4.6.1/select gcc-4.6.1.tar.gz
- a few infrastructure libraries from here (ftp://gcc.gnu.org/pub/gcc/infrastructure/) – get mpc-0.8.1.tar.gz and mpfr-2.4.2.tar.bz2
- GMP itself needs a more recent version 5.0.2 (one of the features is 64bit under darwin)
- from the above article comments, be sure to update all your configures to include ABI=64 something like:
../configure --prefix=$HOME/my_gcc ABI=64../configure --prefix=$HOME/my_gcc --with-gmp=$HOME/my_gcc ABI=64../configure --prefix=$HOME/my_gcc --with-gmp=$HOME/my_gcc --with-mpfr=$HOME/my_gcc ABI=64../configure --prefix=$HOME/my_gcc --enable-checking=release --with-gmp=$HOME/my_gcc --with-mpfr=$HOME/my_gcc --with-mpc=$HOME/my_gcc --program-prefix=my- ABI=64 |
Posted C++ on Saturday, November 19th, 2011.
FastFlow (???) is a parallel programming framework for multi-core platforms based upon non-blocking lock-free/fence-free synchronization mechanisms.
Ooh, aah. This is lovely. Look out disruptor, there is nothing new under the sun apparently.
Very, very nice.A work colleague pointed FastFlow out to me yesterday and I have spent the morning reading/ playing. Big fan so far.
Posted C++, market data on Saturday, September 24th, 2011.
C++ Open Source Market Data Feed-handlers
Feed-handlers for:
- arca
- bats
- directedge
- itch
- opra
Code looks pretty well written.
Code on github – here
Posted C++, coding, low latency on Saturday, July 23rd, 2011.
Not new, but someone was asking me about this the other day… here you go – OpenOnload docs from SolarFlare
Posted C++, coding, programming on Wednesday, July 13th, 2011.
I had to look at it a few times. Cool, sorta wacky.
try_
[
f(arg1)
]
.catch_<runtime_error>()
[
cout << val("caught runtime error or derived\n"),
throw_()
]
.catch_<exception>()
[
cout << val("caught exception or derived\n"),
throw_()
]
.catch_all
[
cout << val("caught some other type of exception\n"),
throw_(runtime_error("translated exception"))
]
Posted C++, FPGA, HFT, algorithmic trading, computer hardware, high frequency trading, linux, low latency, messaging on Saturday, July 9th, 2011.
• Use a binary transaction protocol to eliminate data conversions and complex parsing.• Use Remote Direct Memory Access (RDMA) verbs and zero copy mechanisms to eliminate network protocol stack processing.• Use preallocated data structures to completely eliminate all memory turnover and associated garbage collections.• Tune the hardware and OS for low latency
Part of me says “duh” but part of me says that maybe this is not necessarily common application yet?
Another “worlds fastest matching engine” – here
Tibco FTL messaging – seems interesting…
Fixnetix Raises the Bar: World’s Fastest Nanosecond Trading – more FPGA trading…
Posted C++, coding on Saturday, June 11th, 2011.
Good old reference on basic C++ performance
Contains things like details on:
- type conversion
- base class functions
- cost of virtual, vs non virtual, vs static calls
- inlining
- multiple inheritance
- various casting operations
- time overhead of various exception mgmt schemes
- templates vs inheritance
- object construction
- temp objects
- templates
- std::string usage
- etc.
Posted C++, coding on Saturday, May 28th, 2011.
We have just had Scott Meyers come for his Fastware C++ course. It was/ he was very good. It has me me thinking about fast C++…
Just some reading on optimizing C++.
Also the Intel manuals are useful.
Also – the Intel(R) Threading Building Blocks
