Programming Skills and Interests

Presently, and for some years, I'm especially practiced in the use of C++ in scientific applications--computational fluid dynamics, geophysical modeling, dynamics engines for games, data visualization, and financial modeling. I'm fluent in the latest C++ idioms, such as STL, the Boost libraries, and generic programming, which all I exercise in my daily work. I'm a great fan of modern C++, for the way that it simultaneously affords expressive power, runtime performance, and programmer freedom.

The product set on which I 've been working is supported on Windows and Linux, and I'm in command of the appropriate software development tools on these two platforms, such as Visual Studio and Eclipse.

A long time major interest is performance optimization of scientific applications on parallel architectures. In my present job the focus is on multi-threading on multicore shared memory processors and on GPUs, and I'm the lead engineer in our company for introducing parallel processing into new code as well as retrofitting a very large base of legacy code. OpenMP for multi-core and CUDA for GPU are our parallel programming tools. Previous periods of my career included significant experiences in parallel programming for distributed-memory architectures using MPI, and in SIMD vector supercomputing with vectorizing Fortran compilers.

Performance analysis and tuning is another area in which I have been able to lead in my present company, and I'm practiced in the power tools, such as Valgrind and Intel Parallel Amplifier.

I'm expert in computational geometry and in 3D graphics programming. OpenGL is the graphics API of my current practice, and I also have considerable game programming experience using Direct3D.

Several past projects have provided experiences in various areas of image processing, most recently the manipulation of very large multi-resolution images in the MrSID format.

Through several decades of programming I've attained some level of mastery of, and completed substantial projects in, numerous different programming languages. Nowadays, Python is my language of choice as an alternative to C++, for quick prototyping, for one-off tools, and for large applications when performance is not an issue.


[Dividing Line Image]

Ronald Levine      Professional Stuff    Resume   Tech Writer   Science Writer  Teacher