No Code or Low Code Solutions for HPC

Are there any projects specifically geared towards no code or low code solutions for HPC? Or at the very least something like Scratch or Google Blockly with parallel, distributed constructs? A good way to bring research computing to a wider audience or k-12 (and up)?

1 Like

You aren’t going to like the answer, but IMHO, if you’re not willing to put the time in to figuring out how systems work, you shouldn’t be doing HPC. What could possibly go wrong making HPC accessible to people who have no idea of how HPC works? We find out with every new batch of grad students coming onto the system and it’s not pretty.

Can you posit a situation where this would be advisable? ie, someone doing something scientifically interesting while being ignorant of HPC and you’d like them to have access to a large system without instruction?

This has been tried multiple times - IBM’s Discover System, a variety of drag’n’drop analytical applications and each time I’ve tried to introduce them to a user population, the overhead, edge cases, exceptions, and user frustration have always caused them to fail. Most recently (and repeatedly), the Galaxy system. By the time the ‘easy’ system is adjusted or fixed or updated for a user, that user has moved on to the command line, which in the end is more productive. See the last 50years of computer-interface design - for research anyway - the one constant has been the shell / CLI.

The above opinion may be the huffy rantings of an out-of-touch research computing sysadmin, but I don’t see anything new coming in that really changes that opinion.

There are simplified ways of doing parallel computation without programming MPI, etc, but you still have to know how your analysis works to be able to exploit them. ie Gnu Parallel, for loops, Array jobs via the scheduler, etc, but you have to know how the bits work and flow before you can exploit them.

I’m sure there may be exceptions that allow easy solutions to difficult problems, but in my experience, they only work if exceptional amounts of manpower are thrown at them, thereby weakening the overall argument.

I’d be very interested in hearing the counter arguments with examples.

Best
Harry

3 Likes

Those new batches of grad students need to be trained SOMEhow though, instead of being expected to acquire the knowledge by osmosis. Software Carpentry (https://software-carpentry.org ) is a group working on training, although I don’t think they’re putting any effort into no-code solutions. It seems like the concepts of nodes and message-passing could be taught visually though.

This may be a good space to watch:

1 Like

I think teaching basics takes infinitely less time than developing backend/frontend/UI/whatever…software engineers cost money!

It seems like the concepts of nodes and message-passing could be taught visually though.

Here is a Video Tutorial on Parallel Jobs that I made. It is specific to our cluster, but it has example of how to explain nodes/cores/MPI, etc. I borrowed liberally from the wonderful material from both Software Carpentry and XSEDE.

1 Like