
Introduction to High-Performance Scientific Computing - espeed
http://pages.tacc.utexas.edu/~eijkhout/istc/istc.html
======
acidburnNSA
Looks like a good collection of important topics. The tutorials feel a bit
2005 to me. GNUplot and svn? In my scientific universe it's all matplotlib and
git these days. Maybe I'm unique.

~~~
jarvist
Gnuplot is still used quite a lot in my area. You need to work more to make
something aesthetically pleasing, but it's generally a better fit to plotting
large amounts of data coming from another code. I've also been quite badly
burnt by Matplotlib scripts no longer producing the same plot with changes in
the library. Gnuplot version 5+ is nicer to use and has some pretty powerful
features.

This blog has been a good cookbook reference for how to use it in a modern
way: [http://www.gnuplotting.org/](http://www.gnuplotting.org/)

~~~
leephillips
Gnuplot can handle data files with millions of points, that some users have
reported to cause Matplotlib to crash. It's actually easy to make the plots
look good. It can be controlled through a socket interface from any
programming language, and seemlessly integrates with LaTeX.

We're about to start rolling out chapters from my book, which covers the
latest version:

[https://alogus.com/publishing/gnuplot5/](https://alogus.com/publishing/gnuplot5/)

EDITed to reflect comment below.

~~~
metaobject
Hmmm, I've never had mpl crash and we routinely plot data sets with 10s of
millions of points. We do a mixture of 2D scatter plots. 1D/2D histograms, and
a few 3D plots. What type of plots are you generating? What type of data?

~~~
leephillips
I never had the problem myself, but have seen a handful of user reports in
mailing lists and SO. Perhaps recent releases are better performing. I used to
use mpl regularly and found it very capable, but never liked the API.

I've edited my comment to make it more accurate.

------
espeed
Link to course page, including the source and latest revision of the book (2nd
ed, revision 2016):

[http://pages.tacc.utexas.edu/~eijkhout/istc/istc.html](http://pages.tacc.utexas.edu/~eijkhout/istc/istc.html)

~~~
agumonkey
Then
[https://zenodo.org/record/49897/files/EijkhoutIntroToHPC.pdf](https://zenodo.org/record/49897/files/EijkhoutIntroToHPC.pdf)

~~~
victotronics
No. Please don't. The book still gets updated regularly, so any copy that is
not straight from the repository will get quickly out of date. (I first
published this book 6 years ago. You can find pdf copies out on the intertubes
that are 200 pages shorter than the most recent version.)

Also, if you link straight to the pdf you don't get to see links to my other
books.

Or links to places where you can get a paper copy. Which actually earns me a
couple of pennies.

So please: don't make your own link to the pdf file. Don't.

~~~
agumonkey
Apologies ..

dang if you see this, could you delete or edit my above comment ? Thanks

------
advanderveer
At Nerdalize we're building a cloud that's specifally build for high
performance scientific compute:
[http://www.nerdalize.com/cloud/](http://www.nerdalize.com/cloud/)

~~~
metaobject
I don't understand what this means:

"Great chance that it is cost efficient to run your job on our servers. Our
servers are distributed over homes, so you don’t have to pay for the overhead
of a datacenter. This means that your cost-per-job is up to 55% lower and you
compute sustainably, as we use the produced heat to heat homes."

Distributed over homes? As in "houses"? Your customer's data is stored at
someone's (an employee's?) house?

~~~
shoyer
It looks like they install (sell?) racks of computers as household "heaters".
Scroll down to the "Win, win, win!" section on their homepage with a video.

This is a cute idea but I am skeptical that it makes sense from either an
economic or environmental perspective. There are far more efficient ways to
produce heat than electric heaters that run 24/7, and likewise cooling in data
centers can be extremely efficient by making use of water, e.g., see
[https://www.google.com/about/datacenters/efficiency/internal...](https://www.google.com/about/datacenters/efficiency/internal/#water-
and-cooling)

Also, maintaining servers in people's homes must be quite expensive and there
is limited capacity. It's hard to see that scaling.

advanderveer -- do you have some sort of white-paper that compares the
alternatives?

Disclaimer: I work for Google, but not on Google Cloud.

~~~
j-pb
> There are far more efficient ways to produce heat than electric heaters that
> run 24/7.

Do you mean cheaper? Because generating heat always has 100% efficiency. The
only difference is that if you go from burnable materials to heat directly you
don't get the nice side effect of getting computation done, so burning stuff
is actually less efficient.

~~~
pkolaczk
Technically you're right, but what you really want at home is not _generating_
heat, but having more heat inside. These are not the same things. You can
actually _move_ some heat from outside to inside by using a heat pump (powered
by electricity), commonly known as "air conditioner". Heat pumps can typically
move 2x-6x more heat then they consume energy. So practically their heating or
cooling efficiency is 2x-6x better than a resistance-based heater.

As for burning stuff - burning stuff is typically much cheaper, although it is
actually the least efficient way of heating, in terms of a ratio between the
usable heat you get and the total chemical energy converted to heat.

------
BeetleB
Has some fairly good topics, but I'm surprised it is lacking some of the
basics you normally find: Numerical integration and optimization algorithms.

Root-finding/optimizing is something many people do/need.

~~~
dagss
With "HPC" you usually mean "cluster computing". The problems you mention
rarely go beyond what a laptop can do in seconds. So I am not sure if they
qualify as HPC? Just "numerics", which is more of a prerequisite you might
learn before HPC.

Also, compared to that curriculum, the topics you mention have robust methods
and stable libraries? So you can use what somebody else did. It is more likely
that you need to know the gritty details if you solve PDEs, vs solving ODEs.

~~~
BeetleB
I guess I misunderstood the audience for the book - I took it more as an
introductory level book that goes deep into topics (some of the items listed
in the TOC are very "basic", which was why I was surprised it had some
advanced topics but not all the basics).

As for "laptop can do in seconds" \- well, not if your objective function
takes a few minutes to run. The last time I needed it, the objective function
took about 2 minutes, and there were 8 parameters we were optimizing over.
Standard derivative based optimizing algorithms will require 9 invocations of
the function per iteration. So one iteration of the algorithm took about 18
minutes. Certainly not "seconds". Of course, those evaluations could be done
in parallel, so I just had them run on multiple cores, bringing it down to
only a few minutes per iteration.

Without knowing something about the algorithms my library was using, I would
have been totally lost (not to mention I would have likely picked the wrong
algorithm for the job at hand).

But yes - I did not write my own algorithm - just used an off the shelf one.
However, if you expect that someone who hasn't studied the topic can just use
a random optimization algorithm and get things to work, you are mistaken.

------
playing_colours
Is this a good book to get into the topic? Are there any other titles that can
be recommended?

~~~
jabl
The author is one of the heavyweights in numerical linear algebra (which a lot
of hpc boils down to in the end), and certainly knows his stuff. And based on
some skimming of the book I did a while ago, yes, I'd say it's good.

As for whether it's a good book "to get into the topic", I guess it depends on
what you mean exactly. If you're a scientist who needs to write simulation
code that can run on current HPC resources, congratulations , you're smack in
the middle of the target demographic of this book (I guess). If not, well,
maybe some other book is more appropriate.

~~~
arcanus
> The author is one of the heavyweights in numerical linear algebra (which a
> lot of hpc boils down to in the end), and certainly knows his stuff

Came here to say this. I know Victor, and he is top notch.

~~~
RhysU
Agreed.

------
jilele
I feel the topics should also cover topics on GPGPU, OpenGL/CUDA.

~~~
victotronics
Section 2.9.3

------
raattgift
4.2.1 (p. 177):

> Hyperbolic PDEs ... will not be discussed in this book.

Aw. :(

~~~
victotronics
Contact me if you want to to discuss the outline of a short section with me.
My reason for not adding the hyperbolic case was that it didn't seem to add
much _computationally_ to the discussion.

