What should I know before taking Parallel Programming?

AI Thread Summary
The discussion revolves around preparing for a Fall 2019 course in Parallel Programming. The individual has completed foundational programming courses and is concerned about their readiness due to a lack of prior programming experience. Key points include the importance of having a solid understanding of data structures, which is the only prerequisite for the course. There is a suggestion to review the course syllabus to gauge the initial topics covered and to consult with the professor regarding preparedness and any additional recommended courses, such as computer architecture. Resources for understanding parallel programming concepts, such as synchronization and semaphores, are also mentioned. The consensus leans towards taking the course if it aligns with the individual's interests and academic performance, as it will enhance skills in writing multi-threaded programs.
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.
 
Technology news 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 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 Tom.G
Back
Top