Open markcmiller86 opened 4 years ago
By definition, research software is software that is used to aid research. I am curious as to why we want a what-is on this...a quick what-is may be easy to write but perhaps superfluous?
Should we include a sub-section on what a RSE (research software engineer) is?
Include some details about how research software is different from other software projects our community may be familiar with maybe even including some leading examples of each.
Do ASCR and NNSA (two software halves of DOE) have a common understanding of this?
@bernhold to contact potential authors (based on 4-16-2020 meeting minutes) for this topic.
Reached out to contact@us-rse.org (Steering Committee) for help with this.
@bernhold and @markcmiller86 : Is this issue sufficiently addressed in https://bssw.io/items/what-is-a-research-software-engineer ?
If not, what is missing and what else can be done to close this?
We dont really a topic called "Research Software" to write a what-is. Although we can write an original article/cc and title it "what is research software" or something similar
I am fine closing.
FWIW, I've always been a little perplexed by the "RSE" (mainly the "R") designation. The "SE" I am good with. In fact, I prefer SE over CS. I see myself more as an engineer and not a "scientist". I've always wondered what about the "R" part makse the SE we do any different from any other SE. Now, I think scientific software engineering ("SSE" and the software engineering that is somewhat specific to the needs of scientific software), I can wrap my head around. But, "RSE" just leaves me wondering. I feel like the term "research" is thrown around way too much and generally applied to anything that involves investigating something whether or not that investigation requires significant subject matter expertise, domain knowledge, etc. in order to even plan a set of tasks that would result in completing work of the thing being invesigated.
@rinkug even if we don't have a topic (I'm not advocating for one), we can have an article entitled "What is Research Software". And I still think we should have such an article.
Above, in https://github.com/betterscientificsoftware/bssw.io/issues/479#issuecomment-1510430920, although he's not talking about "research software" per se, @markcmiller86's confusion about the terminology in this space is why I think we need articles like these.
And to respond more directly to @markcmiller86... Personally, I tend to think of RSE as "the engineering of research software". So the R and S are more tightly bound than the S and the E. In other words, RSEs focus on "research software". I think of this as being synonymous with "scientific software". Other people, more thoughtful than me, try to distinguish those two terms, but that has not yet sunk into my brain. So let's set that aside.
I would say that, to a large extent, software engineering for research software is the same as software engineering for other kinds of software. But, to the extent that research software may be unlike some other classes of software (e.g., commercial or business/enterprise software), there will be some differences in how software engineering is practiced on scientific software vs other types. Just in the same way that safety-critical software is treated differently than non-critical software. I am not aware that there are solid research studies of exactly how research software is different than enterprise software, for example. We point to some obvious things in our BSSw tutorial modules. But the need for more study of this was also something that was recognized in the SSSDU workshop, for which we're still trying to get the report out.
Capturing a ChatGPT staring point here..
Research software in the High-Performance Computing (HPC) and Computational Science and Engineering (CSE) community refers to software applications, libraries, and tools that are specifically designed and developed to support and advance scientific research in various domains. These software tools are typically used to perform complex simulations, data analysis, and modeling in fields such as physics, chemistry, biology, engineering, climate science, and many others.
Here are some key characteristics and aspects of research software in the HPC/CSE community:
Scientific Computing: Research software is often used for scientific computing tasks, including solving mathematical equations, running simulations, and processing large datasets to gain insights into complex scientific phenomena.
Performance Optimization: HPC research software is optimized for performance, taking advantage of parallel processing, vectorization, and other techniques to make the most efficient use of high-performance computing resources, such as supercomputers and clusters.
Parallelism: Many research software packages are designed to harness parallelism, allowing them to distribute computational tasks across multiple processors or nodes in a high-performance computing environment. This is crucial for handling large-scale simulations and data analysis.
Open Source and Community-Driven: A significant portion of research software in HPC/CSE is open-source, meaning the source code is freely available for inspection, modification, and distribution. Community-driven development encourages collaboration and peer review.
Domain-Specific: Research software is often tailored to specific scientific domains. For example, software used in computational fluid dynamics will be different from that used in quantum chemistry. These tools are specialized to address the unique challenges of their respective fields.
Validation and Verification: Research software must be rigorously validated and verified to ensure the accuracy of results. This involves comparing software-generated results with experimental or theoretical benchmarks.
Reproducibility: Reproducibility is crucial in scientific research. Research software should be designed with this in mind, allowing others in the research community to replicate and validate results using the same software and data.
Data Management: Many research software tools deal with large datasets. Proper data management and data handling capabilities are often integrated into these tools to efficiently process and store data.
Interoperability: In some cases, research software needs to be able to work with other software tools or data formats, ensuring that it can be integrated into larger research workflows.
User Support and Documentation: Effective user support and comprehensive documentation are essential for the successful adoption and use of research software. Users should have access to clear instructions and assistance when needed.
Longevity and Sustainability: Maintaining research software over the long term is crucial for the continuity of scientific research projects. Sustainable funding models and community involvement are essential to keep the software up-to-date and relevant.
In summary, research software in the HPC/CSE community plays a critical role in advancing scientific knowledge by providing the computational tools needed to perform complex simulations and data analysis. These software packages are highly specialized, performance-optimized, and often open source, contributing to the reproducibility and collaboration within the scientific community.
And, another ChatGPT answer about how does research software differ from commercial software used by the general population?
Research software in the HPC/CSE community differs from commercial software applications used by the general population in several key ways:
Purpose and Target Audience:
Domain Specificity:
Performance Optimization:
Open Source vs. Proprietary:
Validation and Reproducibility:
Community and Support:
Cost and Licensing:
Longevity and Sustainability:
In summary, research software in the HPC/CSE community is specialized, open source (often), optimized for performance, and focused on scientific research, while commercial software is designed for broader, general-purpose use, often with a proprietary licensing model and a different set of priorities.
So, both ChatGPT responses above are good but possible a bit long for our needs here. How about I propose a shortened version of the above for this what is article?
@markcmiller86 : From the conversation today, perhaps you can write a blog on this topic? Since we now have many tracks, a blog makes more sense to me.
I think we need a what is on this topic