Difference between revisions of "CSC352 Class Page 2017"

From dftwiki3
Jump to: navigation, search
( )
 
(210 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
--[[User:Thiebaut|D. Thiebaut]] ([[User talk:Thiebaut|talk]]) 10:37, 2 December 2016 (EST)
 
--[[User:Thiebaut|D. Thiebaut]] ([[User talk:Thiebaut|talk]]) 10:37, 2 December 2016 (EST)
 
----
 
----
 
+
__NOTOC__
 
<br />
 
<br />
 
<center>[[CSC_352_--_2017 | Home]] | [[CSC352 Syllabus -- Spring 2017 | Syllabus]] | [[CSC352 Class Page 2017 | Schedule]] |
 
<center>[[CSC_352_--_2017 | Home]] | [[CSC352 Syllabus -- Spring 2017 | Syllabus]] | [[CSC352 Class Page 2017 | Schedule]] |
[[CSC352_Class_Page_2017#Links_and_Resources | Links &amp; Resources]]</center><br />
+
[[CSC352_Class_Page_2017#Links_and_Resources | Links &amp; Resources]] | [[CSC352_Project_Page_2017 | Final Project]]</center><br />
 +
<br />
 +
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="85%"| '''Topics to be covered''':
 +
|width="15%"| '''Week (approx)'''
 +
|-valign="top"
 +
|
 +
* Syllabus
 +
* Parallelism
 +
* Interrupts
 +
* Processes/Threads
 +
* Latex
 +
|
 +
Week 1
 +
|-
 +
|
 +
* Performance
 +
* Speedup
 +
* Amdhal's Law
 +
* Java threads + Synchronization
 +
|
 +
Week 2
 +
|-
 +
|
 +
* Java Thread-Safe Libraries
 +
* Static Variables
 +
|
 +
Week 3
 +
|-
 +
|
 +
* Introduction to C
 +
|
 +
Week 4<br />Week 5
 +
|-
 +
|
 +
* MPI
 +
|
 +
Week  6<br />Week 7
 +
|-
 +
|
 +
* AWS
 +
* MySQL + MPI
 +
* MPI Clusters on AWS
 +
|
 +
Week 8<br />Week 9
 +
|-
 +
|
 +
* MapReduce
 +
* Hadoop, Java
 +
* Hadoop, Python
 +
* Hadoop AWS
 +
|
 +
Week 10<br />Week 11
 +
|-
 +
|
 +
* Apache Spark
 +
|
 +
Week 12
 +
|-
 +
|
 +
* GPU
 +
|
 +
Week 13
 +
|}
 
<br />
 
<br />
 
====&nbsp;====
 
====&nbsp;====
Line 17: Line 81:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Thursday'''
::*  
+
::* Syllabus
 +
:::* papers
 +
:::* Biweekly newsletters in Latex
 +
::* Parallelism: going to the source: '''Interrupts'''!
 +
::** 8086 type of interrupts (simplified)
 +
::** Interrupt Vector
 +
::** Interrupt Priority
 +
 
 +
::* [[Media:CSC352_Week1.pdf| Slides (pdf)]]
 
|
 
|
 
*  
 
*  
 
|
 
|
*  
+
* Definition of a [http://en.wikipedia.org/wiki/Process_(computing) Process]
 +
* Definition of a [http://en.wikipedia.org/wiki/Thread_(computer_science) Thread]
 +
* [http://docs.oracle.com/javase/tutorial/essential/concurrency/procthread.html Coverage (with examples) of Processes and Threads], provided by Oracle
 +
* Definition of an [http://www.sci.brooklyn.cuny.edu/~jniu/teaching/csc33200/files/0910-ComputerSystemOverview02.pdf interrupt]
 +
 
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 2'''  Jan 31, Feb 2
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 41: Line 118:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Tuesday'''
::*  
+
::* [[Media:CSC352_2017_FinalListPapers.pdf| Pick a paper for presentation]]
 +
 
 +
----
 +
 
 +
::* '''Newsletter'''
 +
:::* [[Media:CSC352_ExampleLatexNewsletter.pdf|Example newsletter]]
 +
::* The format should be similar to the [http://technews.acm.org/ ACM Tech News] format.
 +
::* The header should contain a '''title''', your '''name''', the '''class''' (CSC352) and the '''date'''
 +
::* Each paragraph should have a header with a title, the source of news, the date, and possibly a link to the full article. 
 +
::* The paragraph describing a news item should be between 3 to 10 lines, give or take.
 +
::* Write 1 full page to 2 pages, depending on the richness of events in the technology field
 +
::* Feel free to present ''N''-1 topics with just 3 lines, and 1 topic which you highlight with a longer paragraph.
 +
::* '''Topics''': anything related to ''parallelism'': computers, mobile platforms, cloud, companies, new software, new algorithms, conferences, people in the field, etc.
 +
::* Good sources of information to get started:
 +
::** the [http://technews.acm.org/ ACM Tech News]
 +
::** Wired magazine
 +
::** The NYT Technology Bits
 +
::** [http://WWW.TECHNOLOGYREVIEW.COM MIT Technology Review]
 +
::** The Official Google blog
 +
::** Review: Tom's Hardware
 +
::** Some of the  sites listed in [https://rohidassanap.wordpress.com/2013/06/18/top-40-best-technology-news-websites-the-definitive-list/ this page's] top 40 list.
 +
::* Recommendation for news aggregator:  [http://cloud.feedly.com/#welcome Feedly.com]
 +
 
 +
----
 +
 
 +
::* '''Introduction to Latex'''
 +
:::* [[Tutorial:_Writing_a_Latex_paper_with_ShareLatex.com|DT's tutorial #1]]
 +
:::* [[Latex_Skeleton_for_Simple_Articles_and_Tech_Reports| A page with a Latex skeleton for ''technical reports'']]
 +
:::* [[Latex Example: Bib File: Example Bib File| Example of Bibtex file]]
 +
:::* Learn how to find BibTex entries. Example: [http://dl.acm.org/citation.cfm?id=1525689 The Unreasonable Effectiveness of Data] (go to ACM and click on BibTex link).
 +
 
 +
----
 +
 
 +
::* Interrupts (continued)
 +
::** Context Switch
 +
::** Stack and Stack Frame
 +
::** Global and Local Variables
 +
::* What is a process?
 +
::* What is a thread?
 +
::* [[Python Multithreading/Multiprocessing Examples| Python programs ]] illustrating threads and processes
 +
::* Lab (see slides)
 +
::* Multithreading in Java.  See this [[Computing_Pi| page on Java threads, and the computation of Pi in Java]]
 +
::* [[Media:CSC352_2017_Week2.pdf| Slides (pdf)]]
 +
 
 +
* '''Thursday'''
 +
::* Presenting Technical Papers, [[Media:TheButlerDidIt_2017.pdf | a Presentation]]
 +
::* Multiprocessing in Python: '''in-class lab''' on parallel computation of Pi using the Monte-Carlo approach.  Multi-Processing
 +
::* [[Multiprocessing Python Program Using Monte Carlo to Compute Pi| Lujun's Lab solution program]]
 +
::* [[Media:CSC352_2017_Week2.pdf| Slides (pdf)]]
 
|
 
|
 
*  
 
*  
 
|
 
|
*  
+
* References on Latex
 +
** [http://latex-project.org/guides/ The Latex Project]
 +
** [http://tobi.oetiker.ch/lshort/lshort.pdf A not-so-short Introduction to Latex] (pdf)
 +
** [http://www.tug.org/interest.html The TeX User Group]
 +
** [http://en.wikibooks.org/wiki/LaTeX WikiBooks guide to Latex]
 +
** [http://www-biblio.physik.uni-bonn.de/info/downloads/thesis_guide.pdf Users Guide to Writing a Thesis in a Physics/Astronomy Institute of the University of Bonn]
 +
* References on Processes and Threads
 +
** [http://docs.oracle.com/javase/tutorial/essential/concurrency/index.html Oracle's lesson on ''Concurrency''], a very good source of information on ''processes'' and ''threads'' for the Java platform.
 
|}
 
|}
 
<br />
 
<br />
 +
 +
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 3'''  Feb 7, 9
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 65: Line 200:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Tuesday'''
::*  
+
::* [[CSC352:_Using_Bash,_an_example| Using bash to measure execution time]]
 +
::* Synchronizing access to shared variables and data structures.
 +
::* [[CSC352_Synchronization_and_Java_Threads| DT's notes on Java Synchronization]] (contains programs seen in class)
 +
::* [[Media:CSC352Slides_Week3.pdf| slides (pdf)]]
 +
 
 +
* '''Thursday'''
 +
::* <font color="magenta">Paper Presentation: Berkeley</font>
 +
::* <font color="red">Newsletter due</font>
 
|
 
|
 
*  
 
*  
 
|
 
|
*  
+
* Read Oracle's documentation on [http://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html locks and synchronized methods, objects, and classes].
 +
* Read [https://en.wikipedia.org/wiki/Compare-and-swap Wikipedia's article on Compare-and-Swap]
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 4'''  Feb 14, 16
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 89: Line 233:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Tuesday'''
::*  
+
::* Discussion of View from Berkeley paper.  Many concepts to revisit
 +
:::* Moore's Law
 +
:::* Amdahl's Law
 +
:::* Multi-Core vs Many-Core
 +
:::* Nanometers
 +
:::* Multi-Core Performance as a fn of # of Processors
 +
:::* Programming Lab: Making the Game of Life parallel
 +
:::* [[CSC352:_Using_Bash,_an_example|Using Script Files to Measure Performance of Programs]]
 +
::* [[Media:CSC352_Week4.pdf| Slides (pdf)]]
 +
* '''Thursday'''
 +
::* Rocco Piccinino: presentation on Library Resources.  You can find a link to Rocco's presentation [http://libguides.smith.edu/c.php?g=619276&p=4310286 here]
 +
::* <font color="magenta">Paper Presentations: Patterns + Framework (presented by Riley), and Throughput Oriented Architectures</font>
 +
::* Game of Life?
 +
 
 
|
 
|
 
*  
 
*  
 
|
 
|
*  
+
Two papers to read for Thrusday.  In class discussion.
 +
* [http://www.science.smith.edu/dftwiki/images/a/a6/ParallelCOmputingWithPatternsAndFrameworks2010b.pdf Parallel computing with Patterns and Frameworks]
 +
* [http://www.science.smith.edu/dftwiki/images/0/03/UnderstandingThroughputOrientedArchitectures2010.pdf Understanding Throughput-Oriented Architectures]
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 5'''  Feb 21
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 113: Line 273:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Tuesday'''
::*  
+
::* [[CSC352_Game_of_Life_Lab_2017| Game of Life]]
 +
::* [[CSC352: Using BlockingQueues| Using blocking queues]]
 +
::* [[CSC352:_Using_Bash_Scripts_to_Measure_Program_Execution_Time | Using Bash to measure execution times]]
 +
::* [[Media:CSC352_slides_Week5.pdf| Slides (pdf)]]
 +
* '''Thursday: <font color="magenta">Rally Day</font>'''
 +
::* <font color="red">Newsletter due</font> on Moodle, at 1:00 p.m., just before Rally Day events.
 +
::* '''Requirements for newsletter''': Add an image or figure to your newsletter.  It could be a photo of you at the top, as the author, or a graph, or a logo.  You pick the jpeg or png, and incorporate it in your newsletter.
 
|
 
|
*  
+
* [[CSC352 Game of Life Homework 1| Game of Life Homework]]
 
|
 
|
*  
+
* [https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html Java BlockingQueues]
 +
* [http://tutorials.jenkov.com/java-util-concurrent/blockingqueue.html Simple tutorial on BlockingQueues]
 +
* [https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ArrayBlockingQueue.html ArrayBlockingQueues]
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 6'''  Feb 28, Mar 2
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 137: Line 306:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Tuesday'''
::*  
+
::* Game of Life, revisited
 +
::* Deadlocks, starvation, and the Dining Philosophers problem
 +
::* Thread states
 +
::* Measuring performance: speedup, bash scripts, R graphs
 +
::* Performance measures
 +
::* [[Media:CSC352_week6_2017.pdf | Slides Week 6 (pdf)]]
 +
::* [[Media:CSC352_CTutorial_2017.pdf | Slides for C Tutorial (pdf)]].  [[Solutions_to_Introduction_to_C_Presentation| Solutions for exercises]].
 +
* '''Thursday'''
 +
::* <font color="magenta">Paper Presentation: Unreasonable (Lujun), and Top500</font>
 +
 
 
|
 
|
*  
+
* [[CSC352 Game of Life Homework 2| Homework 2]], due Thursday after the break, 3/23/17, at 1:00 p.m.
 
|
 
|
 
*  
 
*  
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 7'''  Mar 7, 9
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 161: Line 340:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Tuesday'''
::*  
+
::* C & MPI
 +
::* [[CSC352_GCC-Generated_Assembly_ARM_%26_Pentium| Comparing executable C code]] for ARM and for Pentium
 +
::* [[CSC352 MPI pi2.c program | Computing Pi]] with MPI
 +
::* [[Game of Life in C and MPI | Game of Life]] in C
 +
<br />
 +
::* [[Media:CSC352_Week7_MPISlides.pdf| MPI slides (pdf)]]
 +
::* [[Media:CSC352_Week7_CTutorial.pdf| C Tutorial slides (pdf)]]
 +
* '''Thursday'''
 +
::* A word about the [[CSC352_Project_Page_2017| final project]]
 +
::* <font color="magenta">Paper Presentation: Success of MPI (Zainab), and General purpose vs GPU</font>
 +
::* <font color="red">Newsletter due</font>.  This week, add a sentence to each summary that explains why you picked this news item.  Why does the news you reported matters?  How is it important to you?  Does it connect in any way to something you have read or programmed?  Also, this week, add an a section to your newsletter that refers to Amdahl's law.  The purpose of this is to have you create an equation with Latex.  So, you can simply explain what Amdahl's law is, or you can find a bit of news in the past year that mentions Amdahl's Law, and take this opportunity to create an equation: Speedup = T(1)/T(N).
 +
|
 +
* Prepare a 1-page description of the project you will present at the end of the semester.  Submit it before March 21, 1:00 p.m. to Moodle.  See this [[CSC352_Project_Page_2017| page]] for information.
 
|
 
|
*  
+
* [https://computing.llnl.gov/tutorials/mpi/ MPI Tutorials]  by Blaise Barney of the Lawrence Livermore National Laboratory
 +
* [http://cslibrary.stanford.edu/101/EssentialC.pdf Essential C] by Nick Parlante, Stanford U.
 +
|}
 +
<br />
 +
<!-- ============================================================= -->
 +
<!-- ============================================================= -->
 +
{| class="wikitable" style="color:green; background-color:#ffffcc; width: 100%;" cellpadding="10"
 
|
 
|
*
+
'''SPRING BREAK'''
 +
<br />
 +
<!--  [[Image:CalvinDancing.gif | center]] -->
 
|}
 
|}
 +
<!-- ============================================================= -->
 +
<!-- ============================================================= -->
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 8'''  Mar 21, 23
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 185: Line 387:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Tuesday'''
::*  
+
::* 1-page project description due on Moodle
 +
::* C &amp; MPI
 +
::* [http://www.mpich.org/static/docs/latest/www3/ All MPI functions (for reference only)]
 +
::* [[Media:CSC352_Week8_CTutorial.pdf| C-Tutorial Slides (pdf)]]
 +
::* [[Media:CSC352_Week8_MPISlides.pdf| MPI slides (pdf)]]
 +
 
 +
* '''Thursday'''
 +
::* <font color="magenta">Paper Presentations: Virtualization, and View of Cloud (Kathleen)</font>
 +
::* [[Setup_MPI_on_Hadoop_Cluster | Running MPI programs on Local Cluster (Hadoop Cluster)]]
 +
::* [[Media:CSC352_Week8_MPISlides.pdf| MPI slides (pdf)]]
 
|
 
|
 
*  
 
*  
 
|
 
|
*  
+
* [http://cslibrary.stanford.edu/101/EssentialC.pdf Essential C] by Nick Parlante, Stanford U.
 +
* [https://computing.llnl.gov/tutorials/mpi/ MPI Tutorials]  by Blaise Barney of the Lawrence Livermore National Laboratory
 +
 
 +
* [http://star.mit.edu/cluster/docs/latest/overview.html StarCluster overview]: must read.  StarCluster is a set of Python programs that one installs on one's laptop to control clusters on Amazon Web Services (AWS).  StarCluster can easily setup MPI and Hadoop clusters.
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 9'''  Mar 28, 30
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 209: Line 424:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Tuesday'''
::*  
+
::* MPI, Continued
 +
::* [[Media:CSC352_Week9_MPI.pdf | Slides (pdf)]]
 +
* '''Thursday'''
 +
::* MPI, Continued
 +
::* [[Media:CSC352_Week9_MPI.pdf | Slides (pdf)]]
 +
::* [[Tutorial:_Create_an_MPI_Cluster_on_the_Amazon_Elastic_Cloud_(EC2)| MPI on AWS, Part 1 (Hello World!)]]
 +
::* <font color="magenta">Paper Presentations: MapReduce (Sam) and (Nobody got fired + Beyond Hadoop) (Grace)</font>
 +
::* <font color="red">Newsletter due</font>
 +
 
 
|
 
|
 
*  
 
*  
Line 222: Line 445:
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 10'''  Apr 4, 6
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 233: Line 457:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''': MPI, AWS
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Tuesday'''
::*  
+
::* More MPI functions
 +
::* [[Tutorial:_Create_an_MPI_Cluster_on_the_Amazon_Elastic_Cloud_(EC2)| MPI on AWS, Part 1 (Hello World!)]]
 +
::* [[Computing_Pi_on_an_AWS_MPI-Cluster | MPI on AWS, Part 2 (Computing Pi)]]
 +
::* [[media:CSC352_Slides_Week10MPIAWS_2017.pdf| slides (pdf)]]
 +
* '''Thursday'''
 +
::* <font color="magenta">Paper Presentations: Spark (Youyou), and Microsoft Bet Future (Isaiah & Muriel)</font>
 +
 
 
|
 
|
*  
+
* [[CSC352 Homework 3 2017| Homework 3]]
 
|
 
|
 
*  
 
*  
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 11'''  Apr 11, 13
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 257: Line 488:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Tuesday'''
::*  
+
::* Finish [[Computing_Pi_on_an_AWS_MPI-Cluster | tutorial on MPI on AWS (Computing Pi)]]
 +
::* Map-Reduce
 +
:::* Introduction to Functional Programming
 +
:::* Implementing Map-Reduce in Python
 +
* '''Thursday'''
 +
::* Class cancelled
 +
 
 
|
 
|
 
*  
 
*  
Line 270: Line 507:
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 12'''  Apr 18, 20
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 281: Line 519:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 287: Line 525:
 
|
 
|
 
* '''Tuesday/Thursday'''
 
* '''Tuesday/Thursday'''
::*  
+
::* <font color="magenta">Paper Presentations: Wikipedia dumps (Angie), and Can Cloud Reach Top500 (Vega)</font>
 +
::* Map-Reduce
 +
:::* Implementing Map-Reduce in Python: various problems solved with Map-Reduce
 +
::::* [[Map-Reduce_Examples| Example page]]
 +
::::* [[CSC352_Game_of_Life_in_Map-Reduce| Solving Conway's Game of Life with Map-Reduce]]
 +
 
 +
::* [[Media:CSC352_Week12_MapReduce.pdf | Map-Reduce slides (pdf)]]
 +
 
 
|
 
|
 
*  
 
*  
Line 294: Line 539:
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 13'''  Apr 25, 27
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 305: Line 551:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Tuesday'''
::*  
+
::* Labs
 +
:::* [[Tutorial:_Creating_a_Hadoop_Cluster_on_Amazon_AWS | Lab 1: Hadoop on AWS]]
 +
:::* [[Hadoop_Tutorial_2.3_--_Running_WordCount_in_Python_on_AWS | Lab 2:Hadoop on AWS: streaming Python]]
 +
:::* [[Hadoop_Tutorial_1.1_--_Generating_Task_Timelines | Lab 3: Creating Task Graphs]]
 +
 
 +
* '''Thursday'''
 +
::* Project Presentations:
 +
:::* Isaiah
 
|
 
|
*  
+
* [[CSC352 Homework 4 2017| Homework 4, Game of Life using Map-Reduce on AWS]]
 
|
 
|
 
*  
 
*  
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Jan 26, 27
+
|width="45%"|'''Week 14'''  May 2, 4
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 329: Line 583:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''': Introduction, Boolean Functions,  First Lab.
+
|width="60%"| '''Topics''':  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Tuesday/Thursday'''
+
* '''Tuesday'''
::*  
+
::* Project Presentations: 
 +
:::* Grace (lunch time)
 +
:::* Kathleen
 +
:::* Riley
 +
* '''Thursday'''
 +
::* Project Presentations:
 +
:::* Sam & Angie (lunch time)
 +
:::* Lujun & Vega
 +
:::* Youyou and Zainab
 
|
 
|
 
*  
 
*  
Line 341: Line 603:
 
*  
 
*  
 
|}
 
|}
 +
 +
====&nbsp;====
 +
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Exam Week '''  May 9, 12
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#bb8fce;"
 +
|width="100%"| '''Final Exam Week'''
 +
|-valign="top"
 +
|
 +
* '''Friday, May 12, 4:00 p.m.''': pdf of project due on Moodle.
 +
* '''Friday, May 12, 4:00 p.m.''': Hadoop Game of Life due.
 +
|}
 +
<br />
 +
 +
=Links & Resources=
 +
<br />
 +
==Map-Reduce==
 +
<br />
 +
* [https://www.tutorialspoint.com/hadoop/hadoop_mapreduce.htm Map-Reduce Tutorial from tutorialpoint.com]
 +
* [https://www.slideshare.net/andreaiacono/mapreduce-34478449 Good slides on Slide-Share by Andrea Jacono]
 +
<br />
 +
 +
=Final Project=
 +
<br />
 +
:Go to the [[CSC352 Project Page 2017|project page]] for information on the projects.
 +
<br />
 +
 +
=Links and Resources=
 +
<br />
 +
==Cloud Services==
 +
{|class="wikitable"
 +
!colspan="2"|Cloud Services
 +
|-
 +
! style="width: 30%;" | Name
 +
! Description
 +
|-
 +
|
 +
[http://www.bitfusion.io/ bitfusion.io]
 +
|
 +
Provides AMIs on AWS with GPUs attached.  The AMIs are already loaded with tensorflow and python, as well as Jupyter for remote development of Python programs.  They offer a 5-day free trial.
 +
|-
 +
|
 +
[https://www.digitalocean.com/ Digital Ocean]
 +
|
 +
A whole cloud infrastructure similar to AWS, but (apparently) not running on AWS.  Offers a cluster infrastructure with many packages preloaded, including Node.js, Rails, Redis, MongoDB, Cassandra, Docker, MediaWiki, Django, Drupal, Drone, LAMP, LEMP, Ruby, etc.
 +
Offers a $10 credit when first signing up.
 +
 +
|}
 +
 +
==Latex==
 +
<br />
 +
Here are some nice video tutorials on using Latex to write papers.
 +
<br />
 +
* [http://www.youtube.com/playlist?list=PLCRFsOKSM7ePUBOfh3O-K5XZldM5uCPwk Latex tutorial (video)]
 +
* [http://www.youtube.com/playlist?list=PLCRFsOKSM7eNGNghvT6QdzsDYwSTZxqjC How to write a thesis in Latex (video)]
 +
* [http://www.youtube.com/playlist?list=PLCRFsOKSM7eO-WX2ENa5A5vtNx1kjPefY Presentations with Beamer (video)]
 +
* [http://www.youtube.com/playlist?list=PLCRFsOKSM7eN6jPk0wSopXb37RKW93PM3 TikZ examples (video)], for drawing diagrams with lines, circles, ellipses, etc.
 +
<br />
 +
 +
==Smith Elements of Style==
 +
<br />
 +
* [[media:SmithJacobsonCenterWritingPapers-1.pdf | "Writing Papers" from the Smith College Jacobson Center for writing]]
 +
<br />
 +
==On-Line Resources==
 +
* [https://computing.llnl.gov/tutorials/parallel_comp/ Introduction to Parallel Processing], by Blaise Barney, Lawrence Livermore National Laboratory.  A good read.  Covers most of the important topics.
 +
===MPI===
 +
* [https://computing.llnl.gov/tutorials/mpi/ Introduction to MPI], by Blaise Barney, Lawrence Livermore National Laboratory.  Another short but excellent coverage of a topic in parallel processing, this time MPI.
 +
* [http://mpitutorial.com/tutorials/launching-an-amazon-ec2-mpi-cluster/ Launching and Amazon EC2 MPI Cluster]
 +
 +
===Hadoop===
 +
* [[CSC352 MapReduce/Hadoop Class Notes| Thiebaut's class notes]]
 +
* [https://blog.cloudera.com/blog/2014/01/how-to-create-a-simple-hadoop-cluster-with-virtualbox/ How to create a simple hadoop cluster with VirtualBox]
 +
* [http://star.mit.edu/cluster/docs/latest/plugins/hadoop.html?highlight=hadoop StarCluster's Hadoop Plugin]
 +
 +
===Microprocessors===
 +
* [http://www.lighterra.com/papers/modernmicroprocessors/ A 90-Minute Guide to Modern Microprocessors]
 +
<br />
 +
 +
<!--
 +
==Classics==
 +
* [http://www.mcs.anl.gov/~itf/dbpp/ Designing and Building Parallel Programs], by Ian Foster.  A relatively old reference (1995), with still good information.
 +
<br />
 +
-->
 +
<br />
 +
 +
==Papers==
 +
This is a tentative and non exhaustive list of papers scheduled for reading this semester.
 +
===Introduction===
 +
{| class="wikitable" style="width: 100%;"
 +
!width="600" | Paper
 +
! Pages
 +
|-
 +
| style="width: 90%;" |
 +
* [http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.pdf The Landscape of Parallel Computing Research: A View From Berkely], 2006, still good! (very long paper)
 +
|
 +
50
 +
|-
 +
|
 +
* [[Media:UpdateOnaViewFromBerkeley2010.pdf | Update on a view from Berkeley]], 2010. (short paper)
 +
|
 +
2
 +
|}
 +
 +
===General/Parallelism===
 +
 +
{| class="wikitable" style="width: 100%;"
 +
!width="600" | Paper
 +
! Pages
 +
|-
 +
| style="width: 90%;" |
 +
* [[Media:ParallelCOmputingWithPatternsAndFrameworks2010b.pdf | Parallel Computing with Patterns and Frameworks]], 2010, ''XRDS''.
 +
|
 +
5
 +
|-
 +
|
 +
* [[Media:UnderstandingThroughputOrientedArchitectures2010.pdf | Understanding Throughput-Oriented Architectures]], CACM, 2010.
 +
|
 +
7
 +
|-
 +
|
 +
* [[Media:unreasonableEffectivenessOfData2009_HalevyNorvigPereira.pdf | The Unreasonable Effectiveness of Data]], by Halevy, Norvig, Pereira, IEEE Intelligent Systems, IEEE Intelligent Systems, March 2009, Vol. 24, No. 2, pp. 8-12.
 +
|
 +
5
 +
|-
 +
|
 +
* [[Media:Top500VersusSustainedPerformance.pdf| Top500 Versus Sustained Performance]], by William Kramer, 21st International Conference On Parallel Architectures And Compilation Techniques (PACT12), 19–23 September 2012, Minneapolis, MN, US
 +
|
 +
8
 +
|}
 +
 +
===MPI===
 +
{| class="wikitable" style="width: 100%;"
 +
!width="600" | Paper
 +
! Pages
 +
|-
 +
|style="width: 90%;" |
 +
* [[Media:LearningFromTheSuccessOfMPI2002_WilliamGropp.pdf | Learning from the Success of MPI]], by WIlliam D. Gropp,  Argonne National Lab, 2002.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|
 +
11
 +
|}
 +
 +
===GPUs===
 +
{| class="wikitable" style="width: 100%;"
 +
!width="600" | Paper
 +
! Pages
 +
|-
 +
|style="width: 90%;" |
 +
* [[Media:GeneralPurposeVsGPU_Comparison_Many_Cores_2010_Caragea.pdf |General-Purpose vs. GPU: Comparisons of Many-Cores on Irregular Workloads]], 2010&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|
 +
6
 +
|}
 +
 +
===Virtualization===
 +
{| class="wikitable" style="width: 100%;"
 +
!width="600" | Paper
 +
! Pages
 +
|-
 +
|style="width: 90%;" |
 +
* [[Media:ServerVirtualizationArchitectureAndImplementation2009.pdf | Server Virtualization Architecture and Implementation]], xrds, 2009&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|
 +
5
 +
|}
 +
 +
===Cloud===
 +
{|class = "wikitable" style="width: 100%;"
 +
!width="600" | Paper
 +
! Pages
 +
|-
 +
|style="width: 90%;" |
 +
* [[Media:NIST_Definition_Cloud_Computing_2010.pdf | The NIST Definition of Cloud Computing (Draft)]] (very short paper)
 +
|
 +
1.5
 +
|-
 +
|
 +
* [[Media:AViewOfCloudComputing_CACM_Apr2010.pdf| A View of Cloud Computing]], 2010, By Armbrust, Michael and Fox, Armando and Griffith, Rean and Joseph, Anthony D. and Katz, Randy and Konwinski, Andy and Lee, Gunho and Patterson, David and Rabkin, Ariel and Stoica, Ion and Zaharia, Matei.
 +
|
 +
9
 +
|-
 +
|
 +
* [[Media:MapReduceDeanGhemawat_2004.pdf |MapReduce: SImplified Data Processing on Large Clusters]], by Dean and Ghemawat, First published in OSDI 2004, also in Commun. ACM 51, 1 (January 2008), 107-113.
 +
|
 +
13
 +
|-
 +
|
 +
* [[Media:NobodyGotFiredUsingHadoopOnCluster_2012.pdf| Nobody ever got fired for using Hadoop on a cluster]], Rowstron, Antony and Narayanan, Dushyanth and Donnelly, Austin and O'Shea, Greg and Douglas, Andrew
 +
|
 +
5
 +
|-
 +
|
 +
* [[Media:BeyondHadoop_CACM_Mone_2013.pdf | Beyond Hadoop]], Gregory Mone, CACM, 2013. (short paper).
 +
|
 +
2
 +
|-
 +
|
 +
* [[Media:ApacheSparkUnifiedEngine.pdf| Apache Spark: A Unified Engine for Big Data Processing]], Zaharia Matei et al, CACM, Nov 2016, Vol. 59, No. 11.<br />See also [http://cacm.acm.org/magazines/2016/11/209116-apache-spark/fulltext this page for video].
 +
|
 +
10
 +
|-
 +
|
 +
* Metz Cade, [https://www.wired.com/2016/09/microsoft-bets-future-chip-reprogram-fly/ Microsoft bets future chips reprogram fly], ''Wired Magazine,'' 9/25/16. ([[Media:MicrosoftBetsFutureChipReprogramFly.pdf|pdf]])
 +
* [[Comments on Burger's FPGA Paper| Comments on Microsoft bets future paper]]
 +
|
 +
19
 +
|-
 +
|
 +
* [[Media:XGridHadoopCloser2011.pdf | Processing Wikipedia Dumps: A Case-Study comparing the XGrid and MapReduce Approaches]], D. Thiebaut, Yang Li, Diana Jaunzeikare, Alexandra Cheng, Ellysha Raelen Recto, Gillian Riggs, Xia Ting Zhao, Tonje Stolpestad, and Cam Le T Nguyen, ''in proceedings of 1st Int'l Conf. On Cloud Computing and Services Science'' (CLOSER 2011), Noordwijkerhout, NL, May 2011. ([[Media:XGridHadoopFeb2011.pdf |longer version]])
 +
|
 +
8
 +
|-
 +
|
 +
* [[Media:CanCloudReachTheTop500.pdf| Can Cloud Computing Reach the Top500?]], by Jeffrey Napper and Paolo Bientinesi, Proceeding of UCHPC-MAW '09 on UnConventional high performance computing workshop plus memory access workshop,
 +
Ischia, Italy — May 18 - 20, 2009.
 +
|
 +
4
 +
|}
 +
 +
<!--
 +
===Project-Related===
 +
{| class="wikitable" style="width: 100%;"
 +
!width="600" | Paper
 +
! Pages
 +
|-
 +
|style="width: 90%;" |
 +
* [[Media:XGridHadoopCloser2011.pdf | Processing Wikipedia Dumps: A Case-Study comparing the XGrid and MapReduce Approaches]], D. Thiebaut, Yang Li, Diana Jaunzeikare, Alexandra Cheng, Ellysha Raelen Recto, Gillian Riggs, Xia Ting Zhao, Tonje Stolpestad, and Cam Le T Nguyen, ''in proceedings of 1st Int'l Conf. On Cloud Computing and Services Science'' (CLOSER 2011), Noordwijkerhout, NL, May 2011. ([[Media:XGridHadoopFeb2011.pdf |longer version]])
 +
|
 +
8
 +
|}
 +
-->
 +
<p>
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
[[Category:CSC352]][[Category:Classes]][[Category:Hadoop]][[Category:MPI]][[Category:Java]][[Category:Threads]]

Latest revision as of 12:50, 25 April 2017

--D. Thiebaut (talk) 10:37, 2 December 2016 (EST)



Home | Syllabus | Schedule | Links & Resources | Final Project


Topics to be covered: Week (approx)
  • Syllabus
  • Parallelism
  • Interrupts
  • Processes/Threads
  • Latex

Week 1

  • Performance
  • Speedup
  • Amdhal's Law
  • Java threads + Synchronization

Week 2

  • Java Thread-Safe Libraries
  • Static Variables

Week 3

  • Introduction to C

Week 4
Week 5

  • MPI

Week 6
Week 7

  • AWS
  • MySQL + MPI
  • MPI Clusters on AWS

Week 8
Week 9

  • MapReduce
  • Hadoop, Java
  • Hadoop, Python
  • Hadoop AWS

Week 10
Week 11

  • Apache Spark

Week 12

  • GPU

Week 13


 


Week 1 Jan 26, 27    


Topics: Lab/Hw Reading
  • Thursday
  • Syllabus
  • papers
  • Biweekly newsletters in Latex
  • Parallelism: going to the source: Interrupts!
    • 8086 type of interrupts (simplified)
    • Interrupt Vector
    • Interrupt Priority


 


Week 2 Jan 31, Feb 2    


Topics: Lab/Hw Reading
  • Tuesday

  • Newsletter
  • The format should be similar to the ACM Tech News format.
  • The header should contain a title, your name, the class (CSC352) and the date
  • Each paragraph should have a header with a title, the source of news, the date, and possibly a link to the full article.
  • The paragraph describing a news item should be between 3 to 10 lines, give or take.
  • Write 1 full page to 2 pages, depending on the richness of events in the technology field
  • Feel free to present N-1 topics with just 3 lines, and 1 topic which you highlight with a longer paragraph.
  • Topics: anything related to parallelism: computers, mobile platforms, cloud, companies, new software, new algorithms, conferences, people in the field, etc.
  • Good sources of information to get started:
  • Recommendation for news aggregator: Feedly.com

  • Introduction to Latex

  • Thursday



 


Week 3 Feb 7, 9    


Topics: Lab/Hw Reading
  • Tuesday
  • Thursday
  • Paper Presentation: Berkeley
  • Newsletter due


 


Week 4 Feb 14, 16    


Topics: Lab/Hw Reading
  • Tuesday
  • Discussion of View from Berkeley paper. Many concepts to revisit
  • Thursday
  • Rocco Piccinino: presentation on Library Resources. You can find a link to Rocco's presentation here
  • Paper Presentations: Patterns + Framework (presented by Riley), and Throughput Oriented Architectures
  • Game of Life?

Two papers to read for Thrusday. In class discussion.


 


Week 5 Feb 21    


Topics: Lab/Hw Reading
  • Tuesday
  • Thursday: Rally Day
  • Newsletter due on Moodle, at 1:00 p.m., just before Rally Day events.
  • Requirements for newsletter: Add an image or figure to your newsletter. It could be a photo of you at the top, as the author, or a graph, or a logo. You pick the jpeg or png, and incorporate it in your newsletter.


 


Week 6 Feb 28, Mar 2    


Topics: Lab/Hw Reading
  • Tuesday
  • Thursday
  • Paper Presentation: Unreasonable (Lujun), and Top500
  • Homework 2, due Thursday after the break, 3/23/17, at 1:00 p.m.


 


Week 7 Mar 7, 9    


Topics: Lab/Hw Reading
  • Tuesday


  • Thursday
  • A word about the final project
  • Paper Presentation: Success of MPI (Zainab), and General purpose vs GPU
  • Newsletter due. This week, add a sentence to each summary that explains why you picked this news item. Why does the news you reported matters? How is it important to you? Does it connect in any way to something you have read or programmed? Also, this week, add an a section to your newsletter that refers to Amdahl's law. The purpose of this is to have you create an equation with Latex. So, you can simply explain what Amdahl's law is, or you can find a bit of news in the past year that mentions Amdahl's Law, and take this opportunity to create an equation: Speedup = T(1)/T(N).
  • Prepare a 1-page description of the project you will present at the end of the semester. Submit it before March 21, 1:00 p.m. to Moodle. See this page for information.


SPRING BREAK


 


Week 8 Mar 21, 23    


Topics: Lab/Hw Reading
  • Tuesday
  • Thursday
  • StarCluster overview: must read. StarCluster is a set of Python programs that one installs on one's laptop to control clusters on Amazon Web Services (AWS). StarCluster can easily setup MPI and Hadoop clusters.


 


Week 9 Mar 28, 30    


Topics: Lab/Hw Reading
  • Tuesday
  • Thursday


 


Week 10 Apr 4, 6    


Topics: MPI, AWS Lab/Hw Reading
  • Tuesday
  • Thursday
  • Paper Presentations: Spark (Youyou), and Microsoft Bet Future (Isaiah & Muriel)


 


Week 11 Apr 11, 13    


Topics: Lab/Hw Reading
  • Tuesday
  • Introduction to Functional Programming
  • Implementing Map-Reduce in Python
  • Thursday
  • Class cancelled


 


Week 12 Apr 18, 20    


Topics: Lab/Hw Reading
  • Tuesday/Thursday
  • Paper Presentations: Wikipedia dumps (Angie), and Can Cloud Reach Top500 (Vega)
  • Map-Reduce
  • Implementing Map-Reduce in Python: various problems solved with Map-Reduce


 


Week 13 Apr 25, 27    


Topics: Lab/Hw Reading
  • Tuesday
  • Labs
  • Thursday
  • Project Presentations:
  • Isaiah


 


Week 14 May 2, 4    


Topics: Lab/Hw Reading
  • Tuesday
  • Project Presentations:
  • Grace (lunch time)
  • Kathleen
  • Riley
  • Thursday
  • Project Presentations:
  • Sam & Angie (lunch time)
  • Lujun & Vega
  • Youyou and Zainab

 


Exam Week May 9, 12    


Final Exam Week
  • Friday, May 12, 4:00 p.m.: pdf of project due on Moodle.
  • Friday, May 12, 4:00 p.m.: Hadoop Game of Life due.


Links & Resources


Map-Reduce



Final Project


Go to the project page for information on the projects.


Links and Resources


Cloud Services

Cloud Services
Name Description

bitfusion.io

Provides AMIs on AWS with GPUs attached. The AMIs are already loaded with tensorflow and python, as well as Jupyter for remote development of Python programs. They offer a 5-day free trial.

Digital Ocean

A whole cloud infrastructure similar to AWS, but (apparently) not running on AWS. Offers a cluster infrastructure with many packages preloaded, including Node.js, Rails, Redis, MongoDB, Cassandra, Docker, MediaWiki, Django, Drupal, Drone, LAMP, LEMP, Ruby, etc. Offers a $10 credit when first signing up.

Latex


Here are some nice video tutorials on using Latex to write papers.


Smith Elements of Style



On-Line Resources

MPI

Hadoop

Microprocessors



Papers

This is a tentative and non exhaustive list of papers scheduled for reading this semester.

Introduction

Paper Pages

50

2

General/Parallelism

Paper Pages

5

7

5

  • Top500 Versus Sustained Performance, by William Kramer, 21st International Conference On Parallel Architectures And Compilation Techniques (PACT12), 19–23 September 2012, Minneapolis, MN, US

8

MPI

Paper Pages
  • Learning from the Success of MPI, by WIlliam D. Gropp, Argonne National Lab, 2002.                                             

11

GPUs

Paper Pages

6

Virtualization

Paper Pages

5

Cloud

Paper Pages

1.5

  • A View of Cloud Computing, 2010, By Armbrust, Michael and Fox, Armando and Griffith, Rean and Joseph, Anthony D. and Katz, Randy and Konwinski, Andy and Lee, Gunho and Patterson, David and Rabkin, Ariel and Stoica, Ion and Zaharia, Matei.

9

13

5

2

10

19

8

  • Can Cloud Computing Reach the Top500?, by Jeffrey Napper and Paolo Bientinesi, Proceeding of UCHPC-MAW '09 on UnConventional high performance computing workshop plus memory access workshop,

Ischia, Italy — May 18 - 20, 2009.

4