about

Archaea ("ar-KEY-uh") Software, LLC*, founded by Nicholas Wilt, specializes in the parallel programming needed to achieve high performance on modern computers: CUDA development (manycore processors), SIMD instruction sets, and multithreading on multicore CPUs.

If you have an application that you believe would benefit from these technologies, we'd be happy to do an evaluation. Fill out our questionnaire to get started.


Why Parallel?

Through the 1990s, Moore's Law enabled CPU clock rates to increase dramatically as transistor densities increased. Clock rates increased from 5 MHz (c. 1982) to 25 MHz (c. 1990) to 100 MHz (c. 1995) to 3000 MHz (c. 2002), and computer performance increased accordingly.  But in the early 2000s, problems with power dissipation caused CPU clock rates to stop increasing. Transistors have continued to shrink, enabling chips with ever-larger transistor counts, but CPU clock rates have been stuck at about 3 GHz since 2002.

As a result, computer designers have been forced to seek higher performance through various types of parallel processing:

  • Manycore processors such as CUDA-capable GPUs from NVIDIA put many small processors on a single chip. But the development tools for GPUs are still immature, making them difficult to program.
  • SIMD (single instruction, multiple data) instruction sets such as Intel SSE and ARM NEON can perform the same operation on multiple pieces of data in a single instruction. Using these technologies generally requires assembly language coding, use of specialized intrinsics, or both.
  • Multicore CPUs put multiple CPU cores on a single chip. These devices can perform unrelated operations in parallel at higher performance. Multicore CPUs can only be taken advantage of by applications that perform multi-threading, either through native operating system support or by using libraries such as Intel's Thread Building Blocks (TBB). Multithreaded applications are notoriously difficult to debug, requiring careful thread synchronization to maintain correctness with good performance.

These technologies often complement one another; for example, a multi-GPU capable CUDA application must be multithreaded in order to achieve the highest performance.

Archaea Software, LLC* has expertise in all of these areas.

If you have a project that you believe we can help with, please fill out a questionnaire detailing your requirements.

Services offered include:

  • Optimizing applications by porting to CUDA;
  • Optimizing CUDA code by improving data interchange patterns;
  • Refactoring of C/C++ code for improved maintainability;
  • Multithreading for higher performance on multicore CPUs;
  • Optimization using SIMD instruction sets such as SSE.
  • I also have authored numerous patents and can serve as a consultant on IP portfolios, ranging from evaluation to assistance in development or productization.

Nicholas Wilt, Principal
nicholas@archaeasoftware.com

* The company is named after a class of microorganism that was initially believed to be only extremeophiles (e.g., residing in hot springs or salt lakes), but has now been discovered in more conventional environments such as soils and oceans. Working together, many small entities can accomplish great things!