Next weekend I'm heading to St. Louis for the Strange Loop 2012 conference September 23-25.
The conference feed on Twitter: @strangeloop_stl
In particular, there are two workshops I signed-up for on Sunday the 23rd that look very interesting: https://thestrangeloop.com/sessions/concurrent-programming-using-the-disruptor
The Disruptor is an open source concurrent programming framework developed by LMAX Exchange, a financial exchange based in London.
The most interesting thing about it is how the Disruptor has promoted discussions about approaches to writing high performance code, and shown that Java is a serious contender in this space.
Contrary to the current trend of hiding multi-threaded concerns behind languages or frameworks, the Disruptor provides a way to do quite the opposite – to enable developers to think about how to parallelise their architecture in a straightforward and easy to code fashion. In this workshop, Trisha Gee from LMAX Exchange will show examples of how to use the Disruptor to share data between threads, and walk you through how to create your own application using the Disruptor.
This course is for developers who want to learn how to program and utilize the parallel computing power of the Graphics Processing Unit (GPU) using NVIDIA’s CUDA programming framework and, time permitting, OpenCL (although the many of the basic concepts are very similar).
The course will start by introducing the concepts of general purpose GPU programming and go into the process of installing and setting up the development environment on the 3 OS’s that support CUDA. We will also talk about the different language bindings for languages like Java, Python and Ruby.
The main gist of the course will involve learning the concepts of CUDA memory management together with the hardware capability of the GPU we are developing on.
Once we are familiar with the core concepts, we will talk about interoperability of the CUDA library with rendering and also the use of atomic primitives to accomplish things which are quite trivial in the traditional CPU case. Then we will talk about the concept of CUDA streams.
We will talk about the different external libraries both 3rd party as well as provided by NVIDIA optimized for the GPU, that implement many useful algorithms for applications ranging from Finance to Medical Imaging and Machine Learning.
Finally we will end the course by talking about GPUs in the cloud as a service and multi-GPU APIs.
The Mon/Tue conference sessions are also full of interesting topics: https://thestrangeloop.com/schedule