Skip to content

Commit ffa4983

Browse files
committed
Publish notes for SC24 BoF
1 parent 8811561 commit ffa4983

File tree

3 files changed

+199
-6
lines changed

3 files changed

+199
-6
lines changed

2024-11-sc24-bof/bof-notes.md

Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
---
2+
title: Discussion Notes
3+
excerpt: "SC24 BoF: Scientific Software and the People Who Make it Happen: Building Communities of Practice"
4+
---
5+
6+
## Lightning Talks -- Notes and Discussion
7+
8+
### [Move the Needle]({{ "/assets/2024-11-sc24-bof/01-merritt-move-then-needle.pdf" | relative_url }})”, Cristin Merritt
9+
10+
* There is a lack of inclusion in HPC. Move the needle is trying to change this.
11+
* Appreciate nuance
12+
* Move the needle is mentioned in grant applications
13+
* Diversity really does solve problems -- different institutions have different wants and needs
14+
* There is so much you can learn
15+
* You can access the knowledge portal: [https://alces-flight.com/move-the-needle/](https://alces-flight.com/move-the-needle/)
16+
* Have not yet solved the problem, but have moved the needle, as supported by data
17+
18+
### [Training and Industry Relations in the DiRAC Facility]({{ "/assets/2024-11-sc24-bof/02-jenner-training.pdf" | relative_url }})”, Clare Jenner
19+
20+
* DiRAC \= Distributed Research using Advanced Computing
21+
* Located in UK, systems located at 4 universities
22+
* Collaboration with industry, for instance hackathon (regular training events at different sites)
23+
* Each hackathon has a focus, for example: oneAPI Base Toolkit, A100 & Grace Hopper, MI300X & MI300A
24+
* Feedback indicates that attendees get a lot out of them: sharing ideas and experiences, developing good practices
25+
* [https://dirac.ac.uk/training/](https://dirac.ac.uk/training/)
26+
27+
### [How RSEs Can Improve Project Quality by Embracing the Role of “Educated Ignoramus”]({{ "/assets/2024-11-sc24-bof/03-smith-educated-ignoramus.pdf" | relative_url }})”, Spencer Smith
28+
29+
* RSEs working together with domain specialists to capture requirements
30+
* Non-experts can force the experts to gain better understanding of their domain by asking questions requiring explicit simple answers
31+
* Helps to uncover the implicit assumptions, overall improving the quality of requirements/designs
32+
* Q: how do you find those ‘educated ignoramus’ ?
33+
- A: it happens naturally, use the people around you
34+
35+
### [Code Review for Scientific Software]({{ "/assets/2024-11-sc24-bof/04-kershaw-code-review.pdf" | relative_url }})”, Helen Kershaw
36+
37+
* Started from BSSw fellowship
38+
* People are hesitant to share their code
39+
* Many people have tendency to gold plate their code
40+
* Reviewing is hard, people are not sure how to do it, hard to give actionable feedback
41+
* Tutorial exercises for improving code review practices
42+
* Humanizing code review can be a good way to get people into open source
43+
* Q: how structured the code review should be?
44+
- A: it depends, everyone is different. Find a practice that works for your team
45+
* Q: Is code walkthrough something you ever do in code reviews?
46+
- A: Code walkthroughs (rubber duck testing ) can focus on the most important part of the code, or the most important problem or concern. It allows to discover bugs and other issues early on.
47+
* The right approach needs to be selected for code reviews to be effective.
48+
* Discuss goals of code review in advance
49+
* [https://code-review.org/](https://code-review.org/)
50+
51+
### [Developing Reusable Tools for Critical Applications, Looking at an Example of a (UK) Hospital Software Tool – How Could We Have Done Better?]({{ "/assets/2024-11-sc24-bof/05-clifford-hospital-software.pdf" | relative_url }})”, Simon Clifford
52+
53+
* ML algo trained on brain images to give a prognostic score of a patient having Alzheimer's
54+
* Need to test as if in a hospital (PACS) – very different from research setting
55+
* Clients using browsers
56+
* Need images -- privacy concerns
57+
* Need a virtual hospital -- Develop a digital “close relative” of a hospital
58+
* Think of it as a software problem needing a proper software design
59+
* Avoid bunker/silo thinking -- maybe can find a community that is also interested in a virtual hospital
60+
* Q: how are you considering starting a new community? What are the steps?
61+
- A: come to events like SC, learn from others from other successful communities
62+
63+
### [Introducing the Consortium for the Advancement of Scientific Software (CASS)]({{ "/assets/2024-11-sc24-bof/06-bernholdt-cass.pdf" | relative_url }})”, David E. Bernholdt
64+
65+
* A newly formed organization
66+
* Stewardship and advancement of scientific software
67+
* The goal is to support either specific communities or provide the links between communities
68+
* Curate collection of software products
69+
* Bring new users to software products in the community
70+
* 8 software stewardship organizations (SSOs)
71+
* Initially supporting the ECP software applications
72+
* Can sign up for mailing list
73+
* Can reach out to member organizations
74+
* More information on web-page, can contact David
75+
* Can join CASS as a member
76+
* [https://cass.community](https://cass.community)
77+
78+
### [Building a Productive AI-Assisted HPC Software Ecosystem: The Need for a Community-Driven Approach]({{ "/assets/2024-11-sc24-bof/07-menon-ai-for-software.pdf" | relative_url }})”, Harshitha Menon
79+
80+
* Emergence of LLMs have taken the world by storm
81+
* How well can LLMs write HPC code?
82+
* There is a lot of related work
83+
* LLMs do a poor job on HPC code
84+
* LLMs are not explicitly trained for code performance, since LLMs just look at text
85+
* Need to improve LLMs in HPC domain, improve trustworthiness (avoid hallucination) (do not have explainability), need to integrate with existing HPC tools
86+
* Need more data and include performance considerations
87+
* Many open problems (frameworks, etc.), requiring a wide range of expertise, need a collaborative community
88+
* Q: HPC is a niche community. How do we help improve LLMs?
89+
* A: to build a community funding helps (there are many funding opportunities now). Open source everything to share with community. For larger scale form community come together
90+
91+
### [Equity, Diversity and Inclusivity Concerns When Building Communities of Practice]({{ "/assets/2024-11-sc24-bof/08-chuehong-edicop.pdf" | relative_url }} )”, Neil P. Chue Hong
92+
93+
* The “safety in similarity” challenge
94+
* Garden metaphor introduced by Katie Pratt and Lou Woodley
95+
* Many different plants with different needs and roles -- different tools are needed at different times to do different things
96+
* Communities of practice bring together people with similar interests and experience, but diverse teams lead to higher quality
97+
* Safety vs. diversity challenge
98+
* Be intentional in your interventions
99+
* Use code of conduct intentionally
100+
* Q: What are the pests in the garden?
101+
* A: There are weeds -- they look like members but they are disruptive and you may want to use CoC to remove them. Some of them can be good cross-pollinators, others are real pests.
102+
* [https://zenodo.org/records/10849575](https://zenodo.org/records/10849575)
103+
* [https://acss.org.uk/esrc-project-equality-diversity-inclusion/edi-research-groups-and-networking-communities/](https://acss.org.uk/esrc-project-equality-diversity-inclusion/edi-research-groups-and-networking-communities/)
104+
* [https://bristoluniversitypressdigital.com/monochap-oa/book/9781447368014/ch005.xml](https://bristoluniversitypressdigital.com/monochap-oa/book/9781447368014/ch005.xml)
105+
* [https://www.cscce.org/resources/cpm/](https://www.cscce.org/resources/cpm/)
106+
* [https://www.cscce.org/resources/dei/](https://www.cscce.org/resources/dei/)
107+
108+
## General Discussion
109+
110+
* Q: What is the hardest thing in building a community of practice?
111+
* Getting attention from the people who might benefit from participating
112+
* Overcome inertia of approaching people. Many people are happy to write their code but not to talk to other people about it. People are generally kind and nice.
113+
* Sharing happens organically, make artifacts available
114+
* Sharing can take a lot of extra effort
115+
* Now you have to sift through useless material to get to the good stuff (with LLMs)
116+
* In some cases it’s more about uniting or bringing together the existing communities rather than creating a new one
117+
* Often there is unnecessary rivalry, it would be more productive to acknowledge everyone is doing something slightly different and exchange ideas on a regular basis
118+
* Rather than individual meetings, try to have joint meetings to bring groups together -- suggest an annual workshop as a easy way to get used to more collaborative approach
119+
120+
* Want to start a community of trans-disciplinary communities
121+
* Start with a vision statement
122+
* Body of experience on how to write a vision statement -- what have people already done?
123+
* There are a lot good examples in other disciplines of how people created sustainable communities of practice -- what can we learn from them?
124+
* Also there is advice on how to build a community -- look for it -- CSCCE has some great advice on their webpage (cscce.org)
125+
* CSCCE has courses, highly recommended
126+
* https://www.cscce.org/
127+
128+
* Challenge: senior people attend meetings, expect junior people to do the work. Projects tend to stall when a junior leaves a project
129+
* Suggest focus on documentation of what’s happened and what’s planned
130+
131+
* Q: Are there any good books on the topic?
132+
* Check out CSCCE website for resources: https://www.cscce.org/
133+
* Good advice in buzzing communities book by Richard Millington ([https://www.amazon.com/Buzzing-Communities-Bigger-Better-Active/dp/0988359901](https://www.amazon.com/Buzzing-Communities-Bigger-Better-Active/dp/0988359901))
134+
* Can follow advice for how to recruit people to open source communities ([https://opensource.com/business/16/9/how-to-get-programmers](https://opensource.com/business/16/9/how-to-get-programmers)) ([https://www.freecodecamp.org/news/how-to-attract-new-contributors-to-your-open-source-project-46f8b791d787/](https://www.freecodecamp.org/news/how-to-attract-new-contributors-to-your-open-source-project-46f8b791d787/)) ([https://www.redhat.com/en/blog/how-attract-new-contributors](https://www.redhat.com/en/blog/how-attract-new-contributors))
135+
* Many countries also have organizations supporting volunteer efforts -- you can get advice from them as well
136+
137+
* Introspection of what you would think is good advice -- if too invested in one community can become suspicious of another community -- watch out for this
138+
* From Talk by Matt Turk in Anshu's workshop on community codes (~2012)
139+
140+
* The communities that really stuck were the ones that were somewhat difficult to get into -- if it is too easy to join, then it is too easy to leave -- for instance becoming a fellow of the software sustainability institute -- they have to do something to earn membership -- they have invested something (not talking about paying)
141+
142+
* Often find a separation of community of interest (easy to get into) from the community of practice (a bit of a barrier, more exclusive) -- as long has nice distinction, and easy to have interest, this can work
143+
* The community of interest should take minimal effort to sustain otherwise it’s not sustainable
144+
* Find an approach that works for you
145+
146+
* Take a leadership role -- garden metaphor -- need constant attention, or it dies -- paying someone can really help, otherwise someone has to be very motivated -- it takes a lot of effort -- need to align with the leader’s passion/role/job etc.
147+
148+
* Need an evangelist, passion in the community -- even if pay someone, they have to still be passionate
149+
150+
* Senior people are interested in seeing it happen, person at the keyboard is the one making it happen
151+
152+
* Q: How do you move from community of interest to community of practice?
153+
* Example of community of interest is a mailing list. Some effort. The lowest community of interest is a website. Passive. Cannot tell who is engaged. Transfer to community of practice when people start wanting to do something together, then produce the first output of the community of practice. Might be running a BOF every year.
154+
* This BOF has a community of interest. The people that write the blog will be the practitioners.
155+
156+
* Q: How are we going to stay in touch?
157+
* Have to come back next year. :-)
158+
* There isn’t currently a mailing list.
159+
* Could have a slack channel -- US-RSE slack can be used for this
160+
* Could create an e-mail list. It needs some leadership for this to happen i.e. someone has to do it.
161+
162+
* Q: Research Software Engineering -- how did other RSEs end up on this path?
163+
* The short version, I didn’t want to work for a capitalist. Like the research aspect of the job, but doesn’t want to do paper writing and grant writing.
164+
* Many RSEs have been around for 30 years. There just wasn’t a term in the past.
165+
* I didn’t choose the RSE life; it chose me.
166+
* Started as an engineer in commercial field. Liked programming. Ended up at an institution.
167+
* Labs cannot pay as much as industry, but labs can offer tackling big scientific problems
168+
169+
* In the last 10 years -- Greater adoption of software engineering practices, but have to be adapted for scientific software, especially exploratory software
170+
171+
* Most stark observation -- training program at Argonne for Extreme-Scale computing -- track on community codes -- feedback was initially why aren’t we learning something more useful -- now considered one of the most useful tracks -- growth in the use of continuous integration, almost 100% (version control usage in research software is around 95% ([https://peerj.com/articles/cs-963/](https://peerj.com/articles/cs-963/)))
172+
* [https://extremecomputingtraining.anl.gov/](https://extremecomputingtraining.anl.gov/)
173+
174+
* Moved from engineers writing code, to engineers do a prototype then actual software engineers writing the production code -- better attitude toward code, better quality of software. No longer say, “it’s just code”
175+
176+
* Q: LLMs have been helpful writing code -- can engineers write their own code, instead of software engineers writing it? How many people are using LLMs? (about a third of the audience)
177+
* Some labs have localized LLMs to deal with security concerns
178+
* Not all labs, since LLMs don’t always do a good job especially for creating prototype
179+
* Algorithm discovery (like evolutionary algorithms (I assume)). Using LLMs for simple parts of the code.
180+
* LLMs for code is still in its infancy -- this might be the thing that convinces people to do test-driven development. Cannot rely on an LLM to generate correct code
181+
182+
* Q: How many people are looking systematically at using LLMs, instead of just using randomly -- a much smaller number
183+
* Anshu has a paper on arXiv translating a library from FORTRAN to C++ ([https://arxiv.org/abs/2410.24119](https://arxiv.org/abs/2410.24119))
184+
185+
* Q: From a student perspective -- do you think students should be taught how to use LLMs?
186+
* LLM from requirements, rather than from code -- the more precise you get, the greater the likelihood of getting correct code
187+
* The students are using LLMs all the time and often bypass writing code, so maybe the teaching/assessment will be more focused on the design /architecture than coding
188+
* The limitations should be illustrated better
189+
* They are just a tool, the more you use them the better you understand how to use them
190+
* LLMs do not teach you, they just give you an answer which may or may not be correct
191+
* LLMs are preventing students from getting the skills for debugging because the tend to “give answers” rather than teach/show skills?
192+
193+
* LLMs aren’t the only option for code generation
194+
* We know and understand physics – can we use physics-based requirements as the basis to generate code, documentation, etc?
195+
* Nobody every spends enough time on integration (into larger code system), verification and validation -- really important with LLM generated code
196+
* Requirements gathering -- understanding the problem is the problem. Can LLMs do the requirements gathering for us? Don’t think so.
197+
* Code generation from well-understood physics is challenging because the mathematical theories are highly nonlinear and don’t obviously transform into code -- this problem can be mitigated with theory refinements supported by explicit assumptions

2024-11-sc24-bof/index.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,6 @@ description: |
117117

118118
## Discussion Notes
119119

120-
***We will be crowd-sourcing notes at <http://bit.ly/swe-cse-notes>. Please help out!***
121-
122-
<!--
123120
We're writing a summary blog article for [Bssw.io](https://bssw.io/blog_posts). We'll update here when it is published.
124121

125-
In the meantime, you can read the [notes](bof-notes).
126-
-->
122+
In the meantime, you can read the [notes](bof-notes).

index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Site permalink: <http://bit.ly/swe-cse-bof>
1414

1515
## Events
1616

17-
* **[SC24: Scientific Software and the People Who Make it Happen: Building Communities of Practice](2024-11-sc24-bof/)**
17+
* [SC24: Scientific Software and the People Who Make it Happen: Building Communities of Practice](2024-11-sc24-bof/)
1818
* [SC23: Scientific Software and the People Who Make it Happen: Building Communities of Practice](2023-11-sc23-bof/)
1919
- Summary blog post: [Reflecting on Our Community: The SC23 BoF on Scientific Software and the People Who Make it Happen: Building Communities of Practice](https://bssw.io/blog_posts/reflecting-on-our-community-the-sc23-bof-on-scientific-software-and-the-people-who-make-it-happen-building-communities-of-practice)
2020
* [ISC23: Scientific Software and the People Who Make it Happen: Building Communities of Practice](2023-05-isc23-bof)

0 commit comments

Comments
 (0)