What should I know before taking Parallel Programming?

Click For Summary

Discussion Overview

The discussion revolves around the preparation needed before taking a Parallel Programming course. Participants explore prerequisites, necessary background knowledge, and personal readiness for the course, focusing on foundational programming topics, data structures, and additional programming experience.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Homework-related

Main Points Raised

  • One participant expresses uncertainty about their preparedness for the Parallel Programming class, seeking advice on additional topics to research beyond foundational programming and data structures.
  • Another participant suggests that if the prerequisite courses have been completed with good grades, the individual may be ready for the class, questioning the necessity of Assembly knowledge beforehand.
  • A suggestion is made to review the course syllabus and assess the topics covered in the initial weeks to gauge difficulty and preparedness.
  • It is noted that Data Structures is the only formal prerequisite, with a recommendation from the professor to consider taking a computer architecture class first, which includes Assembly.
  • One participant shares their success in previous courses and highlights a common experience of universities assuming certain proficiencies that may not be covered in prerequisites.
  • Another participant encourages taking the course if it is of interest, suggesting it will be beneficial for writing multi-threaded programs.
  • A suggestion is made to consult the professor about the introduction to parallelization during the data structures course for additional guidance and resources.
  • A resource link related to pthreads is shared as a helpful reference for parallel programming.

Areas of Agreement / Disagreement

Participants express varying levels of confidence regarding preparedness for the course. While some believe that the individual should take the course if interested, others emphasize the importance of having a solid foundation in prerequisites. No consensus is reached on the necessity of additional programming experience or specific courses before enrolling.

Contextual Notes

There are limitations regarding assumptions about proficiency levels and the specific content covered in prerequisite courses, which may vary by institution. The discussion reflects differing opinions on the necessity of prior knowledge in Assembly and computer architecture.

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   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

Similar threads

  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 54 ·
2
Replies
54
Views
5K
  • · Replies 8 ·
Replies
8
Views
4K
  • · Replies 17 ·
Replies
17
Views
5K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 30 ·
2
Replies
30
Views
11K
  • · Replies 5 ·
Replies
5
Views
1K