Supercomputing Programmer with @friedmud: TDI 33

Threads Dev Interviews

I am finding developers on Threads and interviewing them, right on Threads.

See All the Interviews

Note: The views in these interviews are personal views and do not represent the interviewee’s employer.

“2 years from now our new flagship system is slated to have 500k cores! So a 2500 core testing cluster is small potatoes!”

Derek Gaston (@friedmud) on Threads

So @friedmud, by day you are a Supercomputer Programmer, how did that happen?

My BS is in CS from University of Missouri Rolla. It’s an engineering school so I had to take engineering courses, and I realized that the application of good CS to engineering problems was a great niche. I did internships with automotive firms and then one with Sandia National Lab – where I ultimately worked for a while on massively parallel mod-sim.

When I was 27 I got the opportunity to go to another national laboratory to start a new simulation framework that ultimately became mooseframework.org

MOOSE is now used by thousands of people all over the world (I get more than one journal article citation _per day_ from it!) to do massively parallel multiphysics simulations using the biggest computers on the planet. At my day job, we use it for simulating nuclear reactors.

It’s incredibly rewarding work – to be able to work on such an amazing project and have it all be open-source!

Also: thanks so much for interviewing me today!

Can you give us some technical specs on MOOSE?

MOOSE is a C++ framework for accelerating the development of massively parallel multiphysics simulation tools. It uses MPI+Threading (and a bit of GPU) hybrid parallelism that is all done under the hood. It has both finite-element and finite-volume numerical methods.

Our users tell MOOSE the physics by specifying partial differential equations they want to solve (by writing C++ plugins) and MOOSE can then go use a supercomputer to solve them.

MOOSE is used for simulating: nuclear reactors, fusion devices, geothermal energy, batteries, vascular networks, mining, earth quake prediction, groundwater flow, airplane wings – and a lot more.

Along with the C++ framework is a huge selection of built-in physics “modules”: so you don’t have to write any code to do heat conduction, solid mechanics, fluid flow, etc.

Finally, one of the more interesting aspects is the Nuclear Quality Assurance Level 1 (NQA-1) software quality standard we have to develop to. We do full CI/CD across the framework and 20+ applications. We have a 2500 core cluster dedicated to running over 75M tests per week so that the hundreds of developers working on these codes can continue to deliver new versions all day long.

Is all this run on-premise or is there a cloud computing component?

All on-premise. In the building I work in we have several supercomputers: 100k cores, 30k cores, 20k cores and a new one coming online at 40k cores. 2 years from now our new flagship system is slated to have 500k cores! So a 2500 core testing cluster is small potatoes!

You can see the public side of the CI/CD here: civet.inl.gov

It runs of another open-source project I started (but has now been rewritten by others) called CIVET: github.com/idaho…

Could someone run a small version of MOOSE at home or in a small lab?

Definitely! It runs great on a laptop – just depends on how large/complicated of a model you want. Most MOOSE runs are probably done on beefy workstations.

How did the name MOOSE come about?

One thing I’ve learned over my career is that names are _important_! Thinking carefully about the name can make a large difference in the success of your project.

MOOSE (Multiphysics Object-Oriented Simulation Environment) is something I came up with one day at lunch with colleagues. It had been named something else that was horrible – so we were actively brainstorming and it fit so well. Then we went with it to name the MOOSE-based codes as animals around Idaho: Pronghorn, Bison, Marmot, etc

You mentioned MOOSE was open source, are there opportunities for others to get involved? If so, how?

Unlimited possibility! There are 2k open issues on our GitHub. Many of those are marked with “Good first issue”: something someone new to the project can help with. Many of those are fairly normal Python and even web-related tasks (our documentation system automatically builds our website as the code changes). So, there are tasks for everyone. We also have a very lively Discussions forum on GitHub and hundreds of people on Slack: so if you’re interested, you can ping us to ask or just jump in!

This project sounds well organized

Thanks! 15 years and a WHOLE lot of time thinking about the development process will do that. I have whole papers out just on the development methodology itself!

You are working on a personal project to help people budget, can you tell us about that?

I’ve been passionate for a long time about budgeting – and really liked this app called MoneyWell. Using it, I was able to create my own twist on envelope budgeting. Eventually, it kind of stopped working and I bounced around between a bunch of different apps, ultimately landing on YNAB.

YNAB is good – but is incredibly restrictive. I used it for a couple of years and never could get it to do what I wanted – plus it took too much time to keep up with it.

So I set out to build one myself!

About a year ago now I started on what ultimately turned into Splurge ( splurgebudget.com ). There are a LOT of differences from YNAB, but the overall idea is the same: put money into “spending categories” and then use those as mini bank accounts for everything you do in life. When a category is out of cash you can’t spend more in that area.

However, what most of these apps get wrong is that they never let you, well, Splurge!

If your grocery budget is only $50/wk – then how do you throw a dinner party? If your dining out budget is only $30/wk, how do you take your partner out for a nice dinner? It’s exactly this kind of stuff that throws people off and ultimately causes them to stop budgeting.

Splurge has a different approach: over time you accumulate money that you can then use to splurge in that category… all without actually going outside your budget.

This has a number of positive effects including letting you feel good about spending, helping you save, helping you stick with your budget, and use your money as a positive force in your life.

I really think that Splurge can have a positive impact on people’s lives! And because of that I am pricing it very low so everyone can use it.

How can people find you elsewhere online?

Thanks so much, Ryan! I really appreciate the opportunity!

Well – I’m the ONLY friedmud that has ever existed on the internet and I’ve had that name since 1993… so just Google for “friedmud”! 😁

Anyone can email me at friedmud@gmail.com or derek@splurgebudget.com if it’s specifically about Splurge.

Thanks again!


Read the full interview on Threads: @ryan.swanstrom • Threads Dev Interview #33 with Supercomputer Programmer @friedmud, I am finding developers on Th… • Threads


Originally Posted

in

by

Last Modified:

Comments

One response to “Supercomputing Programmer with @friedmud: TDI 33”

  1. […] To read the full interview, visit Threads and search for “@ryan.swanstrom • Threads Dev Interview #33 with Supercomputer Programmer @friedmud.” Source link […]

Leave a Reply

Discover more from Ryan Swanstrom

Subscribe now to keep reading and get access to the full archive.

Continue reading