Open vs Closed Source Software: why we chose a hybrid model for our CFD solver
Open or closed software? In the modelling and simulation community, there are strong views on both sides on the relative merits of open and closed source software. Often the critical issue revolves around the commercial model, which is different whether open or closed. Open source tends to be freely available, gaining revenue via support and customisation services, whereas closed source software derives revenue via licensing, and a level of support and usability is presumed to be included.
Whichever side you’re on, there are examples of both models working effectively in the engineering sector. Read on as we weigh up the pros and cons and propose the benefits of a hybrid model.
What are the key benefits of open source software?
One of the differentiating attributes of open source software is the ability for anyone to modify the software for their own purposes. Therefore responsiveness to new requirements can be speedy and leverage a large community of developers.
Some open software licences can require the producer of any modifications to share these with the broader community, and so the openness of the software is pervasive. This model can help to share ideas within a research community and advance the code base.
What’s the flipside of open source?
With open source, it is harder for commercial end users to invest in new developments to establish a competitive advantage, given that these developments have to be shared with that same competition. For sophisticated, high-performance software, opening the code up to anyone can come with the risk that finely-tuned algorithms and specific hardware-oriented implementations lose their edge when they are modified by unvetted users.
The commercial differences between open and closed software
For commercial enterprises to make use of software and to invest in the significant training and process integration requirements, they need to be assured of the ongoing maintenance and quality of the software. Again, open and closed source models take different approaches here.
For closed source software, the producer has a direct and commercial interest in the maintenance of the code. For open source software, there may be a vested interest for the contributing community to maintain the code base, but there is often no contractual obligation. For developers who are willing to contribute their developments back to an open source community, there is the potential for free code maintenance of their developments, providing that their work is of value to others.
Commercial software developers often use front-loaded license models to discourage end users from switching suppliers. Once a software base has been adopted, companies can be reluctant to change because of a potentially sizable up-front cost for a new code, plus the additional training cost. By comparison, open source software often has a very low cost of adoption and no need to maintain licenses when the software is not in use. Commercial licenses are sometimes locked to a specific code version, whereas open source code is typically updated frequently and with no additional expense.
The fundamental commercial difference between the two models lies in the value that can be added by a specialist and the stability of the marginal cost of providing services. Commercial code providers charge license fees to establish stable revenue, whereas open source developers charge day rates for development, often in a competitive environment. Commercial code developers are typically driven by revenue to make the software easy to use, whereas the consultancy market using open source tools has less incentive to lower the technical barrier to service provision. In some cases, specialist IT knowledge is required to install and configure open source software before it can be used by an engineering domain specialist.
The benefits of an open and closed source hybrid
When we designed the commercial model for our Computational Fluid Dynamics (CFD) solver, ZCFD (which is a hybrid between open source and closed source), we sought to gain the advantages of both models.
The closed-source elements of ZCFD support the high-performance software kernels and mapping to the latest hardware options. Therefore it is more effective if these are not generally modified by anyone external to our development team. All code releases are subject to an extensive verification system, executing over 1,000 tests across the code base to make sure that the software works. This costs money, and we think it is worth it; software bugs can cause engineering end users lost time and high levels of risk in product development.
ZCFD has an open-source Python layer that can be very quickly modified by an end user and the developments can either be retained as proprietary foreground or else submitted back to the main repository for open access. It is freely available where the usage is on a single device (which can include the latest graphics cards from NVIDIA), and all of our commercial licenses are unlimited in scale – running over 1 million core cores is the same as running over 10 cores. The release package includes all software dependencies and can be downloaded and activated within minutes.
Are you interested in unlocking affordable CFD at scale?
We’ve just launched a new code release for ZCFD, which you can download here, and do get in touch to discuss further.