Parallelization

There are a variety of approaches to parallel computation with varying degrees of difficulty in implementation.  On the easy end, there is what is termed “embarrassing parallelism” where a single processor application can be run in many instances simultaneously via a script (say, for getting data for varied input parameters).  In the middle of the spectrum there are applications that may be able to exploit “built-in” enhancements of the compilers and hardware.  For example, parallel numerical libraries can be called or iteration-independent loops can be vectorized.  Finally, there are cases where due to memory or computational constraints a code simply cannot scale without being dramatically re-architected to run on distributed processors with message-passing for communication between them.  Whatever the needs are of your application, our team can assist in developing your code to perform up to your research demands.  Besides being readily available to meet with your team, we offer frequent courses in parallelization.  Our team also has the bandwidth to develop parallel implementations for specific projects if research support is available.