Welcome

Welcome to the supercomputing blog! This website will focus on how to develop extremely high performance computing applications using a variety of techniques. As time goes by and computers continue to get faster, there is always an insatiable hunger to have even higher performance in order to solve the most complex computing challenges available. Just a few years ago, computers with more than one processor core were rare. Today, most computers being sold have at least two processor cores, and many computers have four or more cores. As programmers, it is our goal to efficiently use all of the computing resources available in order to satisfy and even delight the people who use our programs. The age of parallel hardware is upon us, and it is our job to use that hardware in order to to efficient parallel computing.

CUDA

CUDA is nVidia’s solution to extremely high performance parallel computing. The general idea of CUDA is to use the massive processing power available in modern nVidia graphics cards in order to do general purpose computations. Most applications that use CUDA have experienced a massive speedup of anywhere from 2x to 200x.

MPI

If you have many computers in a farm or a computing cluster and you wish for a single application to use all of those resources, MPI is the way to go. This library will allow you to not only take advantage of multi-core processing, but will also allow you to take advantage of multi-computer processing.

OpenMP

Many applications are only meant to run on a single computer. Since most personal computers today have more than one processing core, writing software to take advantage of multi-core processing is essential. OpenMP is a language extension that makes it exceptionally easy to convert part or all of a program to use as many processing cores as possible in any one single computer.

There are many techniques and tools available for you to create high performance applications. This includes the use of MPI, OpenMP, CUDA, Stream processing, SSE, and more. When using the right tools for the right job, you will find that it is easy to extract more performance than you would have ever thought possible before. Please feel free to browse the site and learn about numerous methods of parallel computing. If you feel like there is an important subject being left out, please feel free to contact the webmaster.

Graphics Programming

This section will offer tutorials on specific graphics APIs along with image processing algorithms. Here, you can learn about GDI+, convolution, edge detection, sample filtering, and more.

Financial Analysis

This section offers some actual, quantitative analysis of financial markets. All too often, people write articles with subjective opinions about how fundamentals affect stock performance. That doesn’t work on this blog. I’ll present some actual, hard data related to the stock market to help you make better investment decisions. No more wishy washy feelings, just the facts.

Mobile Computing

Mobile computing devices have been gaining an incredible amount of traction over the last decade. People can now carry super phones in their pockets capable of surfing the web, watching movies, and playing games. Therefore, an increasingly important part of computing is mobile computing.