uwhpsc-2016 / homework4

Homework #4
0 stars 1 forks source link

Report Question 3 #19

Open ckchmod opened 8 years ago

ckchmod commented 8 years ago

So, the last question of the report asks how we would use what we learned in this class in future projects. But what active researches (what type of numerical/DE/PDE computing problems) are being currently done/solved in AMath department that require use of high performance parallel computing? How would one learn more about these researches and even get involved?

As someone who is only 3 courses into AMath grad program, I'm still a little blind to the research side of Applied Math, but would like to prepare and eventually be involved in AMath research. (Which is why I was kinda hoping for a final project > final exam...) I guess I'm broadly asking, how to start AMath research using HPSC. Thank you!

cswiercz commented 8 years ago

First of all, there is no "wrong answer" to this question. I just want to hear about what you enjoyed learning in particular and why you wanted to take this class in the first place, presumably, because you had some plans to use these skills at some point in your life. Or maybe you were just curious. That's fine too.

As for active research using HPSC in UW Applied Mathematics there are several key people who, to my knowledge, use at least some of the tools discussed in class.

In addition, there are probably a number of adjunct faculty who use HPSC as well. I would say that every research group in UW Applied Mathematics does some amount of computing, however. Often, single-purpose MATLAB scripts are sufficient and more people are transitioning to at least using Python and also making their code easily available on GitHub.

My own work is mostly single-core "HPSC" in the sense that I try to squeeze out as much performance as possible in my algorithms and computations but the problems I'm solving are not "massively parallel". (Though, there are some components that are embarrassingly parallelizable!)

ckchmod commented 8 years ago

Thanks @cswiercz ! Continuing with the thread, do any of these professors use the Hyak cluster to do their research? At what point do UW researchers decide they need/want to use X number of cores from the Hyak?

cswiercz commented 8 years ago

I know that Randy and his students use Hyak. Not sure about the others. As for obtaining a number a number of cores I think there is an application process.

The first step for every shared resource like Hyak, though, is to profile your problem. (I think this is a part of that application.) That is, can you determine based on diagnostics and runtimes on a small to mid-scale machines how scalable your problem is and how many resources you will need to achieve a certain compute time?

We didn't get to cover diagnostics tools in this class, in part because the only one I've had in-depth experience with is the CUDA Visual Profiler. Other profiler tools are similar in that they try to determine things like memory latency, load balancing, and other pieces of information useful for optimizing your parallel code. One should definitely run such a tool on their code before shelling out cash for a portion of a cluster.

I could say more, but those are the basics for now.

ckchmod commented 8 years ago

Okay, this is awesome. Thank you!