Applications

Every now and then there are really nifty multi-core applications that help with some of the more mundane Linux HPC chores. The -j option for make is one such example. I recently stumbled upon two other applications that take advantage of multi-core for file compression.

The two packages are parallel gzip and parallel bzip2. As you might surmise, each application uses multiple cores to speed up the compression of large files. I checked to see if these were in the Scientific Linux Yum repository, but they did not show up when I tried to install them. Thus, I decided to build them myself.

I'm sure by now everyone has heard that you can run real code on GPU's
(Graphical Processing Units). GPUs are the graphics card in your desktop
or even the graphic engines running your game consoles at home (never
at work - right?). The potential performance improvement for codes or
algorithms that can take advantage of the GPU's programming model and
do most of their computation on the GPU is enormous. There are cases of over
a 100X performance improvement for some codes running on GPUs relative to
CPUs.

But there are some limitations to using GPUs for computation. One of the
critical limitations is that you have to take your code and rewrite it for
the GPU as in the case of
Brook+
from AMD or
OpenCL from the
Kronos Group.
Alternatively, you may have to "adapt" your C code to use some extra
functions and data types (extensions) in the case of
CUDA from
NVIDIA. Unfortunately, you just can't
take your existing code with a compiler and use a compile
option such as "-gpu" to magically build code for the GPU... or can you?