CS 5260 (Fall 2021)


Parallel Computations I


[ Courses ] [ syllabus ] [ class policy ] [ references ] [ projects ] [ assignments ]


Dr. Elise de Doncker
Department of Computer Science
College of Engineering and Applied Sciences
B-240 Parkview Campus
Kalamazoo, MI-49008

Phone: (269) 276-3102 (office), 276-3101 (Dept. office) 276-3122 (fax)
e-mail: elise.dedoncker [at] wmich.edu

Office hours
MW 13:00-14:00 in B-211, or by appointment

(best to get the most recent version)

  • Required:
    An Introduction to Parallel Programming.
    Peter S. Pacheco, Elsevier 2011 (ISBN: 978-0-12-374260-5)
    CUDA by Example - An Introduction to General-Purpose GPU Programming. Jason Sanders and Edward Kandrot, Addison-Wesley 2011 (ISBN: 978-0-13-138768-3)
  • Recommended:
    Parallel Programming - Techniques and Applications.
    B. Wilkinson and M. Allen, Prentice Hall
    Parallel Programming in C with MPI and OpenMP. Micheal J. Quinn, McGraw-Hill
    Parallel Programming for Multicore and Cluster Systems. Thomas Rauber and Gudula Rünger, Springer 2010 (ISBN: 978-3-642-04817-3)
    Using MPI - Portable Parallel Programming with the Message-Passing Interface. W. Gropp, E. Lusk and A. Skjellum, The MIT Press
  • Introduction to Parallel Computing. A. Grama et al., Benjamin/Cummings Publishing Company

    Course Content and Goals
    CS 5260 will cover cutting-edge topics, on multi-core computing and threaded programming, distributed systems, graphics processing units (GPUs) and Cuda. Other topics may include cloud computing with infrastructure as a service and on-demand resource provisioning; "ubiquitous" computing, web based systems and technologies; grid computing; as well as working on the parallel systems in our department and handling classical problems and algorithms. We will get hands-on experience on our cluster of about 20 nodes, which have shared memory, multi-core processors, and GPUs.

    Computer usage
    For program implementations on distributed processors, the class will use the computer cluster in the Department of Computer Science Research lab in room B-217 CEAS, with OpenMP and the MPI (Message Passing Interface) system, and GPU access.

    Learning outcomes

  • Students will be able to use parallel tools and environments.
  • Students will understand the effects of parallel overhead on performance.
  • Students will be able to apply parallel strategies and paradigms to design parallel/distributed algorithms.
  • Students will study and explain the topics of their presentations in detail.
  • Students will have the opportunity to participate in research projects.

    Students' progress and achievements towards reaching the course goals and objectives will be apparent from such measures as: the results and creativity displayed in course assignments; and the contents of and performance on certain exam portions.

    There will be two tests and a final examination. Tentatively, the tests will carry between 40% and 50% of the grade; student presentations, assignments and a semester project for the remaining percentage.

    The following scale will be used to determine your final grade on the basis of your final average:
        A: 92.0 - 100.0,  BA: 88.0 -  91.9,  B: 82.0 -  87.9,  CB: 78.0 -  81.9,  C: 72.0 -  77.9,  DC: 68.0 -  71.9,  D: 60.0 -  67.9,  E:  below  60.0.

    Academic Integrity Policies
    You are responsible for making yourself aware of and understanding the policies and procedures in the Undergraduate Catalog that pertain to Academic Integrity. These policies include cheating, fabrication, falsification and forgery, multiple submission, plagiarism, complicity and computer misuse. If there is reason to believe you have been involve in academic dishonesty, you will be referred to the Office of Student Judicial Affairs. You will be given the opportunity to review the charge(s). If you believe you are not responsible, you will have the opportunity for a hearing. You should consult with me if you are uncertain about an issue of academic honesty prior to the submission of an assignment or test.
    Due to the current COVID-19 Pandemic, and consistent with the State of Michigan* requirements and the WMU Safe Return plan (https://wmich.edu/safereturn), safety requirements are in place to minimize exposure to the Western Michigan University community. These guidelines apply to all in-person or hybrid classes held either inside or outside a WMU building.
    Facial coverings (masks), over both the nose and mouth, are required for all students, faculty and staff while inside the buildings, no matter the size of the space. This also applies to outdoor class settings where social distancing is not possible (i.e., at least six feet of space between individuals). Following this recommendation can minimize the transmission of the virus, which is spread between people interacting in close proximity through speaking, coughing, or sneezing. During specified classes in which facial coverings (masks) would prevent required class elements, students may remove facial coverings (masks) with instructor permission, in accordance with the exceptions in the Facial Covering (mask) Policy** ("such as playing an instrument, acting, singing, etc.").
    Facial coverings (masks) must remain in place throughout the class. Any student who removes the mandatory facial covering (mask) during class will be required to leave the classroom immediately.
    Facial coverings (masks) are not a substitute for social distancing. Students shall observe current social distancing guidelines in all instructional spaces, both indoors and outdoors. Students should avoid congregating around instructional space entrances before and after class sessions. Students should exit the instructional space immediately after the end of class to help ensure social distancing and to allow for those attending the next scheduled class session to enter.
    Students who are unable to wear a facial covering (mask) for medical reasons must contact Disability Services for Students (https://wmich.edu/disabilityservices) before they attend class.
    These guidelines are in place to ensure the safety of all students, faculty, and staff during the pandemic. Noncompliance is a violation of the class requirements and the Student Code of Honor (https://wmich.edu/conduct/expectations-students).

    Additional instructor's notes: The above policy includes cheating by submitting tests, programming assignments or projects where the work (even in part) has been downloaded from the internet; this also applies to text in assignments and project reports. Cooperation among students on submitted work is not allowed. If you are caught there will be consequences.

    http://www.cs.wmich.edu/hpcs High Performance Computational Science Laboratory (HPCS), home of thor
    http://www.cs.usfca.edu/~peter/ipp/index.html Pacheco text book site, with link to source code archive
    http://www.elsevierdirect.com/companion.jsp?ISBN=9780123742605 Pacheco book companion website, with link to source code archive, figures, etc.
    Pacheco book presentations (Elsevier, Morgan Kaufman)
    https://developer.nvidia.com/cuda-example NVIDIA site for the book "CUDA by Example" (where the book's source code is available for download)
    http://www.cs.wmich.edu/elise/courses/cs526/sample-t1-526.pdf Sample exam I
    http://www.cs.wmich.edu/elise/courses/cs526/questions1.pdf Study questions(1)
    https://www.valgrind.org/docs/manual/cg-manual.html Valgrind site
    https://www.valgrind.org/docs/manual/cg-manual.html#cg-manual.running-cachegrind Cachegrind (cache and branch prediction profiler)
    http://www.cs.wmich.edu/elise/courses/cs526/time.c Sample timing program
    http://www.cs.wmich.edu/elise/courses/cs526/time_rand.c Sample timing program with random number generation
    http://www.cs.wmich.edu/elise/courses/cs526/time2_rand.c Sample average timing program with random number generation
    http://www.netlib.org Top 500 supercomputers, software repository and more
    http://www.netlib.org/utk/people/JackDongarra/talks.htm Jack Dongarra talks
    https://medium.com/@smallfishbigsea/basic-concepts-in-gpu-computing-3388710e9239 Basic Concepts in GPU Computing, Hao Gao
    http://www.hpcwire.com HPCwire
    http://technews.acm.org/archives.cfm Archive ACM Technews
    http://www.linuxjournal.com Linux journal
    http://www.linux-mag.com Linux today
    http://www.globus.org Globus (grid computing)
    https://geant3plus.archive.geant.net/Pages/default.aspx Géant network Europe
    http://www.ibm.com/developerworks/web/library/wa-cloudgrid Article on Cloud versus Grid Computing
    kumar.pdf Paper on load balancing and scalability
    http://www.mcs.anl.gov/research/projects/mpi/ MPI homepage. Download and install MPICH2.
    http://www.cs.wmich.edu/~elise/courses/cs626/presentations.htm Presentations CS 6260 Spring 2009
    Android-tutorial.docx Lawrence's tutorial on development for Android

  • [ Courses ] [ syllabus ] [ class policy ] [ references ] [ projects ] [ assignments ]