
Concurrent, Parallel, and Distributed Programming Course Overview
"Explore hands-on advanced programming topics in Unix environment, including process management, inter-process communication, networking, and parallel programming. Prerequisites and workload details included. Get ready to develop portable and efficient programs!"
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Welcome to COP 5570 Concurrent, Parallel, and Distributed Programming Xin Yuan
Instructor Information Instructor Xin Yuan (xyuan@cs.fsu.edu) Office: Love 168 Office hours: 1:30PM to 2:30PM, Tuesday and Thursday Research area: Parallel and Distributed Systems, High Performance Computing TA TBD Office: TBD Office hours: TBD 2
What this Course is About Hands-on introduction to advanced concurrent, distributed, and parallel programming in the Unix environment Advanced UNIX API s: process management, inter-process communication, file systems, advanced I/O, sockets Concurrent programming with processes and threads Network or distributed programming with sockets Parallel programming with OpenMP and MPI After taking this class, you should be able to Use standard UNIX operating system API s Develop concurrent programs Develop networking programs and distributed applications Develop parallel programs Develop portable programs 3
Course Pre-requisites Operating systems - COP 4610 or equivalent Basic course on networks (highly desirable) CNT 4504/5505 or equivalent. Proficiency in C/C++ - absolute must!! Working knowledge of Unix environment (able to edit, compile, debug C/C++ programs in UNIX). 4
Course Materials Required textbook Advanced Programming in the Unix Environment,'' 3rd Edition, by W. Richard Stevens and Stephen A. Rago. Recommended reference textbooks Unix Network Programming Volume 1: The Sockets Networking API,' 3rd Edition, by W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff. 2003 This is essentially the second required book The C Programming Language , 2nd Edition, by B. Kernighan and D. Ritchie. Lecture notes, other assigned readings materials on the Internet 5
Workload and Grading Policies (subject to change) Four individual programming assignments: 40% Some of them are fairly large projects One group term project: 15% Up to 3 students per group One midterm exam: 20% One final exam: 25% 6
Letter grade scale Letter Grade A A- B+ B B- C+ C C- D+ D D- F Numerical Grade 90.00 100 87.00 - 89.99 84.00 86.99 81.00 83.99 78.00 80.99 75.00 77.99 72.00 74.99 70.00 71.99 66.00 69.99 63.00 65.99 60.00 62.99 0.00 59.99 7
Programming Assignments Four individual projects Must be written in C/C++ Will be graded on linprog Some of them are fairly large Late submission 10% penalty per day for up to two days. Start early! Don t wait till the last minute; servers may go down and plan accordingly Ask questions early! 8
Grading Programming Assignments Grading is based not only on the software functionality/quality, but also on Your understanding of your own code. Your preparation to show the features of your program. A program that is kind of working is not good enough. Test your program thoroughly Making a program bug free takes a lot of effort and will be recognized in the grading You will be asked to self-grade your programming assignments as part of the assignment First unknown error (found by the TA, but not in your self grading) drops the maximum assignment grade to 85% of the total grade. First known error (or uncertain about how to self-grade) or unimplemented feature reduces the grade by extra 8%. 9
Group Term Project Up to 3 students / per group Requirement Must be related to the class (concurrent, parallel, and distributed programming) Combination of development and research (experiments) Details will be provided later No restriction on the language or programming environments For example: you may use C/C++, Java, or Python You must be able to demo your project on linprog. 10
Group Term Project Graded based on Project proposal and status report Presentation (the last two weeks) Demonstration (the last two weeks) Final report (and software if applicable) 11
Timeline and Important events (subject to change) Programming assignment 1: Warmup (Week 2-Week 3) Programming assignment 2: UNIX API programming (Week 4-Week 6) Midterm (Week 8) Programming assignment 3: Socket programming (Week 9- Week 11) Programming assignment 4: Parallel Programming (OpenMP, MPI) (Week 13-Week 15) Term project (Week 9-Week 16) Final: April 29, 5:30-7:30pm (This is fixed by the university)! 12
Accounts Computer Science account (<yourid>@cs.fsu.edu) For doing projects https://system.cs.fsu.edu/new/newuser/cs-account-setup/ Use machines linprog.cs.fsu.edu to develop projects FSU account (<yourid>@fsu.edu) For receiving class announcements For submitting assignments For getting your grades https://its.fsu.edu/help/it-support/students Access to canvas For class materials, discussion board, grades etc. Through your FSU account http://canvas.fsu.edu 13
Policies and Guidelines Late homework/projects Please work on homework assignments/projects early and hand in on time 10% penalty per day for up to 2 days Make-up exam No make-up example unless there is a proof of emergency (things beyond your control) Incomplete grade Incomplete will be given only to ones who miss the final due to the emergency. Please read detailed course policies on the course website. 14
Honor code violation Academic Integrity Write your own code from scratch!!! No copying from anywhere including old submissions and code from the Internet. Don t ask anyone for solutions and don t give or lose your code to anyone. Automated (software) plagiarism detection tools will be used in this course. Do not talk to each other during exam! Penalty for honor code violation All honor code violations will be reported to the university The instructor will not hear any explanations from the involved students. Explanations will be heard by the honor court. Step 1 agreement: 0 for the particular assignment/exam and the lowering of one letter (A->B) for course final grade. Second violation: handled by the University honor court. If a case goes to the court, the instructor will suggest an F for the course as the minimal penalty if the student is found responsible. 15
Accommodation for Disabilities Students with disabilities needing academic accommodation should: (1) register with and provide documentation to the Student Disability Resource Center; and (2) bring a letter to the instructor indicating the need for accommodation and what type. This should be done during the first week of class. This syllabus and other class materials are available in alternative format upon request. 16
Review What will we do in this class? What are the grading items for the course? Which server will be used to grade your programming assignments and term project? How is the project grading in this class different from that in other classes? If I am told that I have violated the academic honor code in a programming assignment, where do I argue for myself if I did not give my program to anyone? What is the penalty for violating the honor code? Under what condition can one get an I grade? 18