Tabor Research Quick Question Results:

Users: How much of the software in your HPC workflow do you develop and maintain internally?

Arguably the most important concept in computing is the idea of the "stored instruction machine". That is a machine that will perform different tasks based on different sets of instructions that can be loaded into memory and executed by the machine. This concept allows the same basic machines to do tasks ranging from sending pictures of one’s children to friends and relations, to monitoring international monetary exchange rates, to simulating the evolution of the universe. It has also proved to be a major driver in the expansion of technology, markets and economies.

That said, by elaborating upon Turing and Von Neumann's "stored instruction machine' concept, computer programming was born, a discipline viewed by some as a sublime almost meditative activity, and by others as a circle in hell somehow missed by Danté. With this in mind Tabor Research wanted to gain some insight into the extent that HPC users developed computer programs (or software) internally versus acquired from an external source, i.e. from independent software vendors (ISVs) or from open software organizations. Responses to our quick question survey on this topic covered the entire range of responses but indicated that about half of HPC software is developed internally (see table).

How Much of the Software in Your HPC Workflow do You Develop and Maintain Internally?
  Total Count Percentage
All or nearly all 10 17.2%
Well over half 11 19.0%
About half 13 22.4%
Well under half 19 32.8%
None or nearly none 5 8.6%
Total 58 100%

Assigning responses values on a 1 to 5 scale (with one being "all or nearly all") led to an average response of 2.9 or "about half". Weighted average calculations also indicated that 50% of software is developed internally. The most surprising result from the study was the low number of "none or nearly none" responses at under 10%. Thus the vast majority of sites develop at least some software internally.

It is important to note that programming environments do not scale with amount of use - an organization may have only one program regularly used in its workflow but that code may be a critical component of the organization's work, be highly complex, and be a major bottle neck to productivity. Such programs may require the full panoply of programming tools, e.g. optimizing compilers, code analyzers, debuggers, math libraries, and so on. Conversely nearly all users in another organization may write the programs, but these maybe throw-away codes and require little more than a BASIC interpreter, or mathematical/statistical package. (APL comes to mind here as the author threw away all the APL code he wrote along with the text book.)

We see the major take-away from this data for users is that it emphasizes the ongoing requirements to:

  • Understand the amount and complexity of programming that occurs in the organizations,
  • Evaluate how program development impacts their work flow (both from a personnel time spent, and effectiveness of final programs perspective), and
  • Develop strategies for supporting programmers through software tools and user services consultants.

The take-aways for HPC suppliers are that a strong software development environment is necessary for complete solutions product strategies, and can if properly positioned such environments can be leveraged into competitive advantage for customers with high programming requirements.