CSE 260 explores the topic if parallel computation. As transistor budgets have increased dramatically over the history of digital computing, computer architects have exploited the characteristics of the silicon technologies to exploit parallelism. This course examines the parallelism available in modern computer systems and the particular challenges to computer programmers in using these resources effectively. Topics include, performance estimation, parallel architecture (shared memory, message passing), memory and compute ratios, vectorization, GPUs as massively parallel computation engines, and large scale super computers.
Lecture: T/Th - 12:30 pm - 1:50 pm PETERSON 108
Occasional Discussion : Fr - 9:00 am - 9:50 am WLH 2001
All lectures and discussions are recorded to support asynchronous delivery and review. Videos are available thru canvas "Media Gallery" shortly after each lecture or discussion and via podcast.ucsd.edu.
Grades will be reported on Canvas and Gradescope.
For Q/A, important announcements and resources, please join piazza (see canvas)
Instructor : Bryan Chin - b5chin@eng.ucsd.edu
TAs: Anoushka Saraswat, John (Liangtao) Zheng, Thomas (Haoxuan) Wang
see canvas and piazza.
You should have a strong background in programming in C or C++. Not required, but strongly recommended, is a background in computer architecture (such as CSE 240A, CSE141 or CSE142). Those lacking computer architecture background should see the instructor for additional help or reading.
Some optional sections may be devoted to computer architecture depending on demand.
There are 3 programming assignments and one final exam.
The 3 assignments will account for 75% of your grade.
The final exam will count for 23% - 25 % of your grade (depending on on bonus participation points). Per instructor's discretion, you must pass the final exam to pass the class.
2% bonus credit based on participation in lecture. For full credit, you must attend 12 classes for full credit (omitting week 0 and 1, there are16 in person lectures to this class). Tuesday 11/19 will be a remote lecture .
The final exam will take place on Monday, December 9 from 11:30 am - 2:30 pm and will cover all the material in the course -unless otherwise noted.
Location: TBA
See individual assignments for information on how they will be graded.
Assignment #0 must be completed to pass this course (academic integrity pledge).
Late work will be accepted with a 10% penalty of total possible points per 24 hour period up to 30% (72 hours), 50% at 4 days late. 5 days (no credit).
(in exceptional circumstances, contact course staff. Since each assignment is roughly 2.5 weeks to 3 weeks long, you should have something (partial work) to turn in).
We expect professional and respectful classroom/online behavior. We abide by the rules of Academic Integrity (see below) and have a No Tolerance for Harassment or Discrimination
The fundamental rule for CSE260 is very simple: don’t cheat. Cheating robs you of a learning experience and unfairly disadvantages your peers. Instead of cheating, make use of the CSE 260 staff to help guide you in the mastering of the material. Cheating prevents you from actually gaining the knowledge and experience needed to succeed in this course and in your career following this course.
So really, don’t cheat.
What is cheating?
So what is cheating? First, make sure you have read and understood the UCSD Policy on Academic Integrity. Take a moment to read it. In computer science especially, the line between cheating and not cheating may seem vague. So we are trying to make it more explicit by stating what is considered cheating and what is not.
What are the specifics for CSE 260? In CSE 260, you can read books, surf the web, talk to your friends and the CSE 260 staff to get ideas for solving your programming assignment problems. DO NOT, HOWEVER, SEARCH for CSE260 assignments, solutions, etc. It is not allowable to copy code. Essentially copying code and modifying it for obfuscation reasons (changing variable names, reordering function calls, etc) is plagiarism and considered an AI violation. If you use generative AI as a reource, make sure to cite the resource by providing the input you used to genrate the response. DO NOT COPY CODE. Use other code only for ideas to inspire your code. There is also a gray line between asking your friends for help who have previously taken this course. When in doubt, assume it is wrong and talk to us instead. You, or your 2-person team, must write your own solutions to your programming assignments. Using program code that someone else has written (unless they are in your team for that assignment, or the code was explicitly provided as part of the assignment), providing program code to someone else not on your team, turning in code that you have written with someone else not in your team, or generated by a large language model, is cheating.
WRITE YOUR OWN CODE
To help ensure that there is no way you might be suspected of copying someone else’s code, we ask that you commit to your repository early and often. If you do regular commits, we will be able to see your progress and know that you are making progress on your own toward a solution. Be sure to include comments in your code, as well as in your commits, so we can follow the progression of your code. Doing regular commits helps maintain academic integrity. We reserve the right to deduct points for assignments that show now git hub development history.
Don’t even look at or discuss another student’s code, and don’t let another student look at your code. Don’t start with someone else’s code and make changes to it, or in any way share code with other students. This includes code generated by a machine (such as generative AI).
If you work with a partner, you should both be sharing in the work.
Also, in CSE 260, you must write your own answers on any test or exam. Getting answers from someone else, or providing answers to someone else, is cheating.
If you do cheat, we will enforce the UCSD Policy Academic Integrity. All suspected cases will be submitted the Academic Integrity office for investigation and resolution. Possible consequences are: you will get an F in the course, and the Dean of your college will put you on probation or suspend you from UCSD. In prior cases (in this class), students facing suspension may face other consqeuences (loss of full-time student status, financial aide implications, loss of job prospects, etc).
Note: all work code must be committed using classroom.github.com repository, and no other repository may be used. Use of other repositories or using github in a way that obscures development history raises Academic Integrity issues. Github repos must remain private and assignments for this class are not to be shared publically (during or after this class).
Note on 3rd party disclosures:
To detect instances of academic integrity violations (and protect us all) in programming assignments we will use 3rd party software. Including your name and/or PID in the source code will disclose that information to the 3rd party.
STUDENTS RESPONSIBILITIES
Students are expected to complete the course in compliance with the instructor's standards. No student shall engage in any activity that involves attempting to receive a grade by means other than honest effort, for example:
No student shall knowingly procure, provide, or accept any materials that contain questions or answers to any examination or assignment to be given at a subsequent time.
No student shall complete, in part or in total, any examination or assignment for another person.
No student shall knowingly allow any examination or assignment to be completed, in part or in total, for himself or herself by another person.
No student shall plagiarize or copy the work of another person and submit it as his or her own work.
No student shall employ aids excluded by the instructor in undertaking course work.
No student shall alter graded class assignments or examinations and then resubmit them for regrading.
No student shall submit substantially the same material in more than one course without prior authorization. A student acting in the capacity of an instructional assistant (IA), including but not limited to teaching assistants, readers, and tutors, has a special responsibility to safeguard the integrity of scholarship. In these roles the student functions as an apprentice instructor, under the tutelage of the responsible instructor. An IA shall equitably grade student work in the manner agreed upon with the course instructor. An IA shall not make any unauthorized material related to tests, exams, homeworks, etc. available to any student.
The following are additional examples not listed in the General Catalog specific to programming classes:
No student shall provide their assignments, in part or in total, to any other student in current or future classes of this course. No student shall procure or accept assignments from any other student from current or prior classes of this course.
All programming code and documentation submitted for evaluation or existing inside the students computer accounts must be the students original work or material specifically authorized by the instructor. The course accounts are authorized for course work only.
Collaborating with other students to develop, complete or correct course work is limited to activities explicitly authorized by the instructor. Use of your own previous course work or other students course work, in part or in total, to develop, complete or correct course work, including documentation, is unauthorized. Use of texting or messaging services or Internet sites like Pastebin or GitHub or similar systems to share or publish course files in part or in total is unauthorized. Unless otherwise explicitly authorized, each student is completely responsible to keep their code, homeworks, design files and other course work off of Internet sites.
For all group assignments, each member of the group is responsible for the academic integrity of the entire submission.
Use of Large Language Models must be cited. Code cannot be copied from the LLM. Prompts must be provided.
Each student is responsible for knowing and abiding by UCSD's Policies on Integrity of Scholarship and Student Conduct. Any student violating these policies will earn an 'F' in the course and will be reported to the University for the violation.
Authorized course assistance is available in person and electronically from the course instructor and instructional assistants