On 2017-05-22, I started my internship at ORNL (Oak Ridge National Labratory) (ornl.gov), where I have been learning about programming, filesystems, and other aspects of HPC.


ORNL (Oak Ridge National Labratory) is a scientific research center with over 4500 employees.

In computer science, ORNL has the 3rd fastest supercomputer in the world (Titan) that was the fastest when built. By next year, ORNL plans to open Summit, which will be the fastest. These are all examples of HPC (High Performance Computing) machines.

What I’ve Been Doing

So far, in almost 3 weeks, I’ve written a filesystems benchmark, and utilized other benchmarks to graph and report on IO performance.

If you are interested in running these, the source for a well known benchmark, IOR, is located here: https://github.com/LLNL/ior, and my filesystems test, paper, and test scripts are here: https://code.ornl.gov/uvb/filesystem-tests.

I’ve also started with MPI, in order to to run parallel jobs.

For my projects, I’ve also developed cargs to parse arguments, handle help, and program information.

Using STEMprime as an example, I’ve adapted the program to optionally use MPI for multiprocessing exponents, and this has been ran on Titan as a job checking 6 exponents at a time. Obviously, it is much slower than prime95, but it was a great learning experience of porting code to a cluster computer.

You can find some of my work here: https://code.ornl.gov/uvb/, although I will still use ChemicalDevelopment’s github for most of my projects, located here: https://github.com/chemicaldevelopment.

My Plans

I plan to rewrite many of my old projects (like PGS, FractalRender, CollatzL, or A267263) to use cargs, OpenCL, autotools, and MPI so that they can be better parallelized and distributed for home computers, and HPC giants here at ORNL.

I will probably stick with using C for my projects, as I feel it is important to learn how low-level routines work, and using C is necessary for performance. However, I might also use numpy, scipy, or some other python packages to benchmark the differences.