I helped write parallelknoppix when I was an undergrad - our university's 2nd cluster ended up being a bunch of laptops with broken displays running it. Took me a whole summer.
Then the next semester I am denied the ability to take a parallel computing class because it was for graduate students only and the prof. would not accept a waiver even though the class was being taught on the cluster me and a buddy built.
That I still had root on.
So I added a script that would renice the prof.'s jobs to be as slow as possible.
I helped write parallelknoppix when I was an undergrad - our university's 2nd cluster ended up being a bunch of laptops with broken displays running it. Took me a whole summer.
Then the next semester I am denied the ability to take a parallel computing class because it was for graduate students only and the prof. would not accept a waiver even though the class was being taught on the cluster me and a buddy built.
That I still had root on.
So I added a script that would renice the prof.'s jobs to be as slow as possible.
I joked about the last advent of code, finding problems that could be parallelized and try to solve them with OpenMP. Sadly at the time I was stuck with a machine that had a god awful 2 core AMD CPU that struggled to browse the web.
I've had such a situation and we were lucky that we had written software that makes dealing with embarassingly parallel problems embarassingly scalable.
I use parallel all the time for embarrasingly parallel scientific computations on a cluster. It is very easy to use and elegant, and it's one of the programs I'm most grateful for.
Recently the developers fixed a major bug for me, that child jobs on other nodes would not be killed when parallel was killed. This was the only thing stopping me from recommending it to my labmates, now there's no reason not to use it!
You can do that, but then they won't accept your solution, so you just spend time developing a parallel system that you need to support yourself until the end of time. Been there, done that.
Writing parallel-processing applications isn't easy. I run a non-profit tech R&D organization; and we have internships where under-grad students can try their hand at coding in "a corporate environment" with joint development, toolchains, and the whole shebang.
We gauge the students by how much they accomplish in how much/little time and how elegant their solution is. And at towards the end of the internship, we invariably ask the best students to add some form of multi-threading or parallel-processing to the application they're working on (in C++, C#, or Java mostly) and even our best students have trouble with getting proper parallel-processing code working (and these guys had done brilliantly elsewhere).
I personally learned it the hard way, scouring the 'net for all the different methods until I built my own "templates" that work great for me.
I took the parallel programming class back in college. Even though we implemented several good examples using parallelism like matrix multiplications and different methods of achieving it using the GPU or distributed computers, the main goal of the class was to analyze and see what problems could be processed in parallel and also how to divide the problem in small chunks in order to do so. It was a lot of fun.
Your parallel computing approach sounds intriguing! Could you provide an example script? I would like to look into this. If you like you could open an issue as a feature request and provide a code snipped there.
I took a parallel programming class in 1993 and programmed HP Fortran on a connection machine, but not much more than one assignment to do iterative matrix averaging in parallel. It was fun, but it was just like programming fortran on any other platform since I didn't have physical access to the machine, just remote access.
Then the next semester I am denied the ability to take a parallel computing class because it was for graduate students only and the prof. would not accept a waiver even though the class was being taught on the cluster me and a buddy built.
That I still had root on.
So I added a script that would renice the prof.'s jobs to be as slow as possible.
BOFH moment :)
reply