Reddit Reddit reviews Introduction to High Performance Computing for Scientists and Engineers (Chapman & Hall/CRC Computational Science)

We found 5 Reddit comments about Introduction to High Performance Computing for Scientists and Engineers (Chapman & Hall/CRC Computational Science). Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Computer Science
Introduction to High Performance Computing for Scientists and Engineers (Chapman & Hall/CRC Computational Science)
Check price on Amazon

5 Reddit comments about Introduction to High Performance Computing for Scientists and Engineers (Chapman & Hall/CRC Computational Science):

u/the_poope · 3 pointsr/Physics

I you want a career in computational science/engineering it's definitely a plus to pick up C/C++ (or Fortran, but only if your field uses this). I would suggest you start by geting a solid C++ book and read the first few chapters - the rest can typically be read when needed. Then start small and learn how and what it means to compile and link a program. Start a small project of some sort. Don't go overboard in advanced features: it's not easy to get input/output of data from a C++ program and graphical visualization is almost out of the question. So focus on small command line programs - that's how most scientific programs work: they read an input file and outputs an output file with data that you can then read, analyze and visualize with Python. If you're out of ideas on your first projects, check out https://projecteuler.net/. When your projects become larger, learn how to write simple Makefile scripts (using Linux helps, I guess there is something similar on Windows). If you feel like going into the HPC field (running on 100s to 1000s of cores) I can recommend reading this book and if you want to be a real expert, you need to really understand what the computer is doing, and for that I recommend this book.

u/Semaphor · 2 pointsr/lowlevel

So, I've been googling around. Here is a dump of links for those interested:

u/OmegaNaughtEquals1 · 1 pointr/cpp_questions

>In my one CS class, to test the performance of an application, we were generally instructed to set a variable with a #define and compiled the program with various -D inputs to test the performance. Normally this would be the array size or the number of threads. Is this the accepted best practice or the only way to do this with OMP or CUDA?

That's a rather silly method of doing scaling testing. In particular, the number of threads in OpenMP can be controlled via an environment variable or adjusted at runtime. For CUDA, it depends on what you are trying to test. It's very easy to adjust the block and thread dimensions at runtime: just call the kernel with different configurations.

**

On a more general note, there are many different metrics for "performance" in HPC. What you are describing here is more of a scaling test. That is, you are testing to see how much parallelism your code can give you. Another important aspect of performance testing is to profile your code. This is very easily accomplished using gprof. Of course, fixing the hotspots in your code once you find them is a discussion in and of itself. Because you are in mechanical engineering, I assume you will be doing a lot of finite element work. If that is the case, I highly recommend taking a look at Victor's excellent [
Introduction to High Performance Scientific Computing](http://pages.tacc.utexas.edu/~eijkhout/istc/istc.html). There is a free, online PDF version of the book. If you only purchase one book, let it be [Introduction to High Performance Computing for Scientists and Engineers*](https://www.amazon.com/Introduction-Performance-Computing-Scientists-Computational/dp/143981192X/ref=sr_1_1?s=books&ie=UTF8&qid=1465933332&sr=1-1&keywords=introduction+to+high+performance+computing+for+scientists+and+engineers). If you have other questions along the way, post them here or over at /r/HPC. Scientific computing is a rich field. To do well, you need an even richer set of skills and knowledge from areas of computer architecture, software engineering, performance analysis, software optimization, large-scale computing systems, and not to mention the domain-specific knowledge of you problem. Don't be afraid to ask lots of questions!

u/gtani · 1 pointr/math

jacobolus' recs are very good. you can also google som eHPC resources:

c++ is going to take, um, a lot of time, read the sidebar in /r/cpp. For c, Zed shaw's book, Head First, 21st century, etc, there's lots of books

http://www.shodor.org/media/content/petascale/materials/UPModules/beginnersGuideHPC/moduleDocument_pdf.pdf

languages: http://snir.cs.illinois.edu/PDF/Programming%20Languages%20for%20HPC%20short.pdf

-----

a good primer: https://bitbucket.org/VictorEijkhout/hpc-book-and-course/src. Texts by Hager/Wellein and Levesque also received good reviews: http://www.amazon.com/Introduction-Performance-Computing-Scientists-Computational/dp/143981192X


convex optimization: http://stanford.edu/~boyd/cvxbook/

----------

the important parallel libs: MPI, openMP, CUDA, openCL. Wrox Press "Professional Cuda programming" is very good, I'm not familiar with others.