In performance-sensitive businesses, application development is largely about managing tradeoffs. Those tradeoffs could be throughput versus latency, speed versus accuracy, or some other aspect of performance versus other application behavior. But they could just as easily be tradeoffs between application performance and developer productivity. Engineering for today's highly parallel environments is non-trivial, to put it mildly.

STAC provides resources that help developers understand those tradeoffs:

  • Research (STAC Reports) in areas such as compute-intensive analytics and low-latency message handling that provides multi-dimensional analysis of the capabilities of a given technology stack (compiler, essential libraries, hardware and OS, etc.).
  • Benchmark implementation code (STAC Packs) you can walk through to understand how the results were achieved in a particular target environment. If it's an environment you're familiar with, you'll have an excellent example to follow. If it's a new environment, you can get an idea what it would be like to use.
  • Configuration details of the systems reported on (STAC Configuration Disclosures and ultra-detailed dumps of OS and BIOS configurations). This provides insights into optimizations you might be able to take advantage of without even touching your code.
  • Learning opportunities like STAC Summits, webinars, and occasional training sessions, which bring more clarity to high-performance application engineering. This stuff isn't easy, but it doesn't have to be obscure.

If you're interested in numerically intensive algorithms, check out STAC-A2. For network-bound programming, see the STAC Network/IO SIG. Also check out the many developer-oriented discussions at past and future STAC Summits.

Next: How to take advantage