The F# Journal: Low Latency Allocationless Programming on .NET
The latest article from The F# Journal is on a topic I sometimes get asked about when talking to people doing low-latency financial trading systems:
Allocationless programming on .NET
"An extreme technique used in some latency-critical applications is to completely circumvent the garbage collector by replacing all heap allocations with the use of pre-allocated arrays of value types, effectively implementing manual memory management inside a managed programming language. This might be called Fortran-style programming on .NET but the advantage is that stalls due to garbage collection can be made less frequent or even eliminated entirely..."
This article has reminded me what a wealth of material is available in the archives of The F# Journal. While it is subscription only, it is also surely one of the most interesting and compelling collections of articles I know of on applied numerical, parallel, distributed, algorithmic and high-performance managed programming. For example, consider some of the recent articles:
Using MPI over Infiniband from F# (31st March 2011)
Graph theory: Strongly-connected components (15th March 2011)
Sliding averages (15th February 2011)
Real-time ray tracing in Silverlight (31st January 2011)
Computational geometry: quick hull (15th November 2010)
Concurrent programming: TCP relay server (31st October 2010)
Distributed message passing (15th September 2010)
Parallelism in .NET 4 and Visual F# 2010 (15th June 2010)
There are about 100 other articles up there like these. Just think about it: how much more productive would typical server-side software teams be if they set a condition that everyone on the team had read a set of articles like these and were fluent in the design and implementation techniques embodied in them? They also look like they could make very good interview topics; surely this is the kind of education and knowledge we need from today's server-side programmers....
More info on the F# Journal site.