Software for Science: Some Personal Reflections
Anne C. Elster

TL;DR
This paper reflects on the challenges of developing scientific software amid increasing system complexity, discussing licensing, sharing, education, and the importance of optimization and data locality.
Contribution
It offers personal insights and experiences on licensing, code sharing, and training in scientific software development, highlighting practical approaches and challenges.
Findings
Sharing code on GitHub facilitates collaboration.
Open access publishing promotes wider dissemination.
Educational initiatives inspire new generations in parallel computing.
Abstract
As computer systems become more and more complex, software and tools lag more and more behind. This is especially true for scientific software that often demands high performance, and thus needs to take advantage of parallelisms, memory hierarchies and other software and systems. How do we help bridge this ever-increasing gap? This paper describes some of my experiences and thoughts regarding licensing, code sharing, code maintenance, open access publishing, and educations and training. Details include my recent experiences with getting industrial funding for GPL licensed software, BSD issues, sharing code on GitHub, and how I inspire students to take my 4th year Parallel Computing elective which this semester has over 50 students enrolled. Some thoughts and comments regarding why both optimization and data locality are such a central issue for scientific software is also included.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems · Scientific Computing and Data Management
