I'm interested in the history behind Code Saturne. I work in a British research organisation attached to a university and I'm interested in the way that EDF has made several very useful softwares (e.g Salome/Code Saturne/Code Aster) Open Source. I think this is something we could learn from.
So why does EDF make so much freely available? Is this from a moral argument (the development was largely publicly funded, so the public should have access) or is it from a practical argument (you get better software if you spread the development burden)? Or is it some other reason?
Why is CS Open Source?
-
- Posts: 4125
- Joined: Mon Feb 20, 2012 3:25 pm
Re: Why is CS Open Source?
Hello,
Only a small portion of the code_saturne code has been publicly funded, so the argument is not a moral one.
In practice, codes would not have been open-sourced if at least part of the teams had not been interested in open source, but the moral argument is not one which would hold much weight with the program managers distributing the funding.
The main reasons for making the codes open source were practical, and included:
- Make collaborations easier.
- Improve the visibility and credibility of the software (i.e. we are not afraid to show it/have nothing to hide).
- Get more/easier feedback.
- Get more developers.
- Get external contributions.
Actually, the code is dual-licenced, and is also used with proprietary extensions, such as the neptune_cfd multiphase solver (which was not open-sourced, as it was not the sole property of EDF, but also other companies, and open-sourcing it would be complicated/require convincing many people).
In practice, external contributions are rare, since mastering a large code is not trivial, and we would need more critical mass. The dual licencing aspect also does not help, since contributors must accept that there code also be used in non open-source tools, but the main limitation does not seem related to that. Also, some users in academia do small developments in the code, but do not have a culture of code maintenance, and do not go through the stages of having their code integrated.
Collaborations are indeed much easier. We probably missed a few collaboration opportunities before the code was open-sourced just because people tired of the "red tape" and administrative type work required to get permission to install the code somewhere, and collaborations tended to be "top down", while today, anyone can use the code, and give us feedback. Meaning we can choose to spend more time/effort helping those who seem to do interesting things with it, and learning from them, while not wasting time with those who don not really bother to learn, or severely lack autonomy.
The fact that the code is open source seems to be a positive argument when applying to publicly funded collaborative projects, though this is only a small part of the funding, and some organizations we know whose codes are not open source but whose organization and funding depend more strongly on participating in such projects tend to have a bigger presence than we do (whereas our own funding depends mainly on internal company uses and projects).
A big advantage of the code being open source is that it can be installed by academic users we collaborate with easily on various computing centers they have access to, without spending our time and energy on getting authorizations, and this leads to a lot of feedback on large systems and has helped us keep up with HPC systems (and even get a first GPU experimentation, though we are still working on that).
Globally, making the code open source has not led to many contributed developments, but has led to a lot of feedback, and in many cases, bugs being reported by external users and fixed (by us) before they impacted internal users.
Best regards,
Yvan
Only a small portion of the code_saturne code has been publicly funded, so the argument is not a moral one.
In practice, codes would not have been open-sourced if at least part of the teams had not been interested in open source, but the moral argument is not one which would hold much weight with the program managers distributing the funding.
The main reasons for making the codes open source were practical, and included:
- Make collaborations easier.
- Improve the visibility and credibility of the software (i.e. we are not afraid to show it/have nothing to hide).
- Get more/easier feedback.
- Get more developers.
- Get external contributions.
Actually, the code is dual-licenced, and is also used with proprietary extensions, such as the neptune_cfd multiphase solver (which was not open-sourced, as it was not the sole property of EDF, but also other companies, and open-sourcing it would be complicated/require convincing many people).
In practice, external contributions are rare, since mastering a large code is not trivial, and we would need more critical mass. The dual licencing aspect also does not help, since contributors must accept that there code also be used in non open-source tools, but the main limitation does not seem related to that. Also, some users in academia do small developments in the code, but do not have a culture of code maintenance, and do not go through the stages of having their code integrated.
Collaborations are indeed much easier. We probably missed a few collaboration opportunities before the code was open-sourced just because people tired of the "red tape" and administrative type work required to get permission to install the code somewhere, and collaborations tended to be "top down", while today, anyone can use the code, and give us feedback. Meaning we can choose to spend more time/effort helping those who seem to do interesting things with it, and learning from them, while not wasting time with those who don not really bother to learn, or severely lack autonomy.
The fact that the code is open source seems to be a positive argument when applying to publicly funded collaborative projects, though this is only a small part of the funding, and some organizations we know whose codes are not open source but whose organization and funding depend more strongly on participating in such projects tend to have a bigger presence than we do (whereas our own funding depends mainly on internal company uses and projects).
A big advantage of the code being open source is that it can be installed by academic users we collaborate with easily on various computing centers they have access to, without spending our time and energy on getting authorizations, and this leads to a lot of feedback on large systems and has helped us keep up with HPC systems (and even get a first GPU experimentation, though we are still working on that).
Globally, making the code open source has not led to many contributed developments, but has led to a lot of feedback, and in many cases, bugs being reported by external users and fixed (by us) before they impacted internal users.
Best regards,
Yvan
Re: Why is CS Open Source?
Thank you for the comprehensive reply. That's very useful, i hope to persuade more people in my organisation of the benefits of Open Source.