What should I know before taking Parallel Programming?

In summary: Fall 2019 semester.In summary, the conversation is about a student's interest in taking a Parallel Programming course in the Fall 2019 semester. The student has completed prerequisite courses such as CS Foundations I/II and Data Structures and Algorithms, but is unsure if they are prepared for the class. They are considering taking a course on computer architecture before taking Parallel Programming and have also reached out to the professor teaching the course for their opinion. The conversation also mentions the possibility of the data structures course covering an introduction to parallel programming. Overall, the student is seeking advice and opinions on their readiness for the course and any additional research they should do beforehand.
  • #1
MinusTheBear
22
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
  • #2
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.
 
  • #3
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
  • #4
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 :)
 
  • #5
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:
  • #6
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:
  • #7
Here's a good related resource: https://computing.llnl.gov/tutorials/pthreads/
 
  • Like
Likes Tom.G

What is Parallel Programming?

Parallel programming is a type of programming in which multiple tasks are executed simultaneously, rather than in a sequential manner. This typically involves the use of multiple processors or cores to perform computations in parallel, which can significantly improve the performance and efficiency of certain tasks.

Why should I learn Parallel Programming?

Parallel programming is becoming increasingly important in the field of computer science as it allows for faster and more efficient processing of large amounts of data. It also enables the development of complex and computationally intensive applications, making it a valuable skill for scientists and engineers.

What are the potential challenges of Parallel Programming?

Parallel programming can be challenging due to the complexity of managing multiple tasks and ensuring that they do not interfere with each other. It also requires a deep understanding of computer architecture and memory management to effectively utilize parallel processing.

What are the common techniques used in Parallel Programming?

There are several techniques used in parallel programming, including shared memory, message passing, and task parallelism. Shared memory involves multiple tasks accessing and modifying the same memory, while message passing involves passing data between tasks. Task parallelism involves breaking down a large task into smaller subtasks that can be executed in parallel.

What languages and tools are commonly used in Parallel Programming?

Some of the commonly used languages in parallel programming include C, C++, Java, and Python. There are also various tools and libraries available, such as OpenMP, MPI, and CUDA, to help with parallel programming tasks. The choice of language and tools will often depend on the specific application and hardware being used.

Similar threads

  • Programming and Computer Science
Replies
11
Views
1K
  • Programming and Computer Science
Replies
8
Views
881
  • Programming and Computer Science
Replies
8
Views
1K
  • Programming and Computer Science
2
Replies
54
Views
3K
  • Programming and Computer Science
Replies
9
Views
2K
  • STEM Career Guidance
Replies
30
Views
5K
  • Programming and Computer Science
Replies
5
Views
617
  • STEM Academic Advising
Replies
6
Views
1K
Replies
6
Views
967
Back
Top