While national laboratories and universities spend hundreds of millions of dollars every year on fundamental HPC software research, this software tends to be difficult to use in a corporate production environment. Research software typically is developed by Ph.D.s for use by highly experienced scientists who are willing to put in extraordinary time and effort to make it work. But industry wants fast desktop tools that do not require a Ph.D. to use. The world of technical computing has evolved from one that was managed by a few highly skilled and educated engineers to one in which computing resources are spread throughout an enterprise to a wide variety of people. Research organizations do not develop their applications with these needs in mind.
Further compounding the problem is a shrinking federal budget that has reduced the amount of government funding available to support joint programs between national labs and industry. In this environment, it is unlikely that the laboratories will reallocate significant portions of their budgets to focus on joint endeavors with ISVs. The labs could be criticized for misspending funds, since there is an assumption that they have been given “just enough” to fulfill their missions.
Additionally, research software developed within the universities is often an abstraction of a real problem, and may be licensed as open source software. Therefore, it has not been subjected to the rigorous testing demanded by industry, and may not allow for proprietary extensions to the code that companies require. Consequently, the software developed by these research organizations, while providing an important foundation for commercial software, is often inadequate for immediate use by industry.
Most HPC research codes are produced by the national laboratories or universities and licensed as open source, i.e., the source code is freely available and may be copied or altered without permission or payment. However, the terms of some open source license models discourage software developers from improving and commercializing these codes, thereby hindering software innovation.
For example, the General Public License (GPL) requires that derivative works also bear the GPL designation, so they automatically become open source as well. This makes ISVs and other software developers reluctant to invest in development, because they cannot keep their improvements proprietary or derive competitive advantage from them. David Turek, vice president of Deep Computing at IBM, shared the frustration of many software developers: “It’s very difficult when we make major investments to try to produce differentiated technology, and somebody says to me ‘Really nice. Now can you put it on everybody else’s platform in the world and make it cheap or free?’ What we have to do, given this circumstance, is to work with other platform vendors on new business models that satisfy the needs of the end users while also making our own technology investments economically viable.”
On the other hand, the Berkeley Software Distribution (BSD) license allows developers to incorporate the open source code into derivative works that are not open source and can become proprietary. Much successful HPC software that has transitioned from government and universities to industry bear BSD-type open source licenses.
A vibrant, growing HPC market is the best long-term guarantee that production quality HPC application software will be available. Participants in the Council-OSC software workshop also agreed that wider usage of HPC is crucial for future U.S. economic growth and the nation’s ability to maintain a preeminent position in the global marketplace. Participants made recommendations for stimulating long-term HPC market growth through near-term accomplishments.