What should I know before taking Parallel Programming?

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
6 replies · 2K views
MinusTheBear
Messages
22
Reaction score
0
I'm organizing my electives for Fall 2019, and I want to take Parallel Programming. I will have finished my math minor this Summer Semester, and will have completed CS Foundations I/II as well as Data Strcutures and Algorithms all taught in C++. I didn't know any programming prior to starting my CS degree, so I'm not sure if I will be prepared for this class or not. Is there anything I should be researching beyond foundational programming topics and data structures prior to taking this class?

I definitely want to take it, I just don't know if I should take it next Spring after I have more programming/CS experience (IE Assembly, Software Engineering, etc.). I emailed the professor teaching the class to see what he thinks, too. But, I'm curious to get more opinions.
 
on Phys.org
MinusTheBear said:
I'm organizing my electives for Fall 2019, and I want to take Parallel Programming.
What are the prerequisite courses for this class? If you have taken them, and your grades are good in the prereq classes, then I would say you're ready.

I'm not sure that Assembly would be necessary before taking a class in parallel programming, but it (par. programming) would probably be a topic in the software engineering course.
 
Look at the course syllabus and see what is covered in the first few weeks. If you know it already then that’s great. If not then look up the topics and get a feel for difficulty.

Also I’d talk to the prof about your concerns and what Prerequisites he feels are right for the course.

Have you looked for an example of a parallel program in some common language like java or C++? It can give you some insight into how parallel programs are constructed using synchronization and semiphores to control what thread can update a variable or run a method.
 
  • Like
Likes   Reactions: ing_it
Data Structures is the only Pre-requisite. The professor also recommended taking a class on computer architecture, first — which assembly is a prerequisite for. My data structures professor actually covers an intro to parallel programming if time allows for it. But I’m not sure we will get to it this semester since we only meet once a week.

So far I have made A’s in all the courses, and have an A mid-semester in Data Structures. I’m not sure if this is a common experience, but my Uni typically assumes some proficiencies in various areas that aren’t necessarily met through the prereqs... which is why I like to get advice from multiple sources :)
 
I think you’re being overly cautious and you should take the course if it interests you. It’s definitely a good course to take and help you when writing multi threaded programs.
 
Last edited:
With respect to your data structures course, you could ask the prof early in the course about the intro to parallelization and see if he can teach it to you on the side. He will know whether he will cover it at the end of the course. At least he could suggest some things to read and look at.
 
Last edited:
Here's a good related resource: https://computing.llnl.gov/tutorials/pthreads/
 
  • Like
Likes   Reactions: Tom.G