May 2012
M T W T F S S
« Nov    
 123456
78910111213
14151617181920
21222324252627
28293031  
Chris Donnan

Create Your Badge

Chris Donnan : Programming – Brooklyn Style

software, trading, family, fun

GCC 4.6.1 on Mac Lion

Good instructions here, but too much klunking around….

On Lion, will need to download:

../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

FastFlow

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.


C++ Open Source Market Data Feed-handlers

C++ Open Source Market Data Feed-handlers

Feed-handlers for:

  • arca
  • bats
  • directedge
  • itch
  • opra

Code looks pretty well written.

Code on github – here


C++ Optimization Manuals

C++ Optimization Manuals


OpenOnload

Not new, but someone was asking me about this the other day… here you go – OpenOnload docs from SolarFlare


Quick C++ Re-post…

Suicide by C++ And How to Avoid It


Some truly wacky looking C++ code (Boost 1.47.0)

Really – look at this code…

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"))
]

		
			
			
		
	
	

Interesting reading for today…
• 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…


Linux networking strategies

http://www.kegel.com/c10k.html


Old but good – Technical Report on C++ Performance

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.

Optimizing C++/ Scott Meyers Fastware C++

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++…

Optimizing C++

Just some reading on optimizing C++.

Also the Intel manuals are useful.

Also – the Intel(R) Threading Building Blocks


Google open sources build system – Ninja

Google open sources build system – Ninja