===== SPM support material 2010-2011 ===== ==== Course Notes ==== The course notes are available and they have been distributed (hardcopy) to the students that managed to bring them to some "copy center" (I don't know which one(s)). If you need a copy, please ask your colleagues or ask me the master copy (to be given back after copying). The table of contents of the course notes can be find {{:magistraleinformaticanetworking:spm:spm11toc.pdf|here}}. [[errataCorrigeSpm1011|Here]] you can find the errata corrige page relative to the notes. ==== Functional semantics ==== * [[http://didawiki.cli.di.unipi.it/doku.php/magistraleinformaticanetworking/spm/ocamlfs1|Link]] to sample functional semantics page * [[http://didawiki.cli.di.unipi.it/doku.php/magistraleinformaticanetworking/spm/skelfsem|Link]] to complete functional semantics page ==== Book covering the last part of the course lesson ==== The last part of the course includes arguments related to Peer-2-peer and to Wireless networks. These arguments are not covered by the course notes released in April. Rather, they can be studied on the book * Kurose, Ross, //[[http://www.pearsonhighered.com/educator/product/Computer-Networking-A-TopDown-Approach/9780321497703.page|Computer networks: a top down approach]]// Pearson/Addison Wesley Referring to the fourth edition (although the 5th is already available), the material is covered by Sec. 2.6 //Peer-to-Peer Applications// and by Chap. 6 //Wireless and Mobile Networks//. These sections were already completely covering the contents of the last part of the course already in the 3rd edition, which is available in Italian (for the students of the "Informatica" master). ==== VMWARE image with tools ==== To enable students to play with the tools mentioned and used during the course, I prepared an Ubuntu based VMWARE image, where all the frameworks discussed in the course are already been included. The image is available here: [[http://backus.di.unipi.it/~marcod/SPM1011/ubuntu.tgz|ubuntu.tgz]]. Be careful, it's a large file (more than 2 Gb!). To use this image: - install the VMWARE player for your machine (free players are available from the VMWARE [[http://downloads.vmware.com/d/info/desktop_downloads/vmware_player/3_0?channel=fs&q=vwmare%20player%20download&ie=utf-8&oe=utf-8|web site]] for both Linux and Windows) - download the [[http://backus.di.unipi.it/~marcod/SPM1011/ubuntu.tgz|ubuntu.tgz]] image file - unpack it - run the player - tell it to open the ubuntu virtual machine (that is, choose to open the file **ubuntu.vmx**) - if the player asks what about the virtual machine click the button "I copied it" - once the virtual machine is up and running, log in as user //spm// with password //spmspm// - on the desktop you'll find a readme, a folder with all sources and a number of links to web pages of some of the supported structured programming frameworks. It is worth pointing out if you use this image **no modification** is made to you boot disk/windows partition, unless you do specific actions mounting the partition under Ubuntu and modifying the partition with superuser rights. It is also worth pointing out the virtual machine uses just one core, therefore no multicore features will be active on the virtual machine! ==== Design patterns ==== * [[http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612|Amazon pointer]] to //Design Patterns: Elements of Reusable Object-Oriented Software// book by Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides (this is not relative to "parallel" patterns, actually) * [[http://www.amazon.com/Patterns-Parallel-Programming-Timothy-Mattson/dp/0321228111|Amazon pointer]] to //Patterns for Parallel Programming// by Mattson, Sanders and Massingill, this is the book of parallel design patterns mentioned during the lessons * Parallel design pattern [[http://www.cs.uiuc.edu/homes/snir/PPP/|resource page]] * [[http://www.cs.uiuc.edu/homes/snir/PPP/design/massingill.pdf|1]] [[http://www.cs.uiuc.edu/homes/snir/PPP/design/massingill2.pdf|2]] [[http://www.cs.uiuc.edu/homes/snir/PPP/design/massingill3.pdf|3]] [[http://www.cs.uiuc.edu/homes/snir/PPP/design/massingill4.pdf|4]] : pointers to papers by Massingill et al. illustrating parallel design patterns. * A fresh look at the parallel programming problems: [[http://delivery.acm.org/10.1145/1570000/1562783/p56-asanovic.pdf?key1=1562783&key2=4491499521&coll=portal&dl=ACM&ip=131.114.88.241&CFID=66597108&CFTOKEN=59109785|A View of the Parallel Computing Landscape]] by Krste AsAnoViC, rAstisLAV boDiK, JAmes DemmeL, tonY KeAVenY, Kurt KeutZer, John KubiAtoWiCZ, neLson morGAn, DAViD PAtterson, KoushiK sen, John WAWrZYneK, DAViD WesseL, AnD KAtherine YeLiCK. * {{:magistraleinformaticanetworking:spm:sldespatternscorsosemini11.pdf|Slides}} of the lesson given to the course of Prof. Semini on parallel design patterns (June 1st, 2011) ==== FastFlow ==== * [[http://calvados.di.unipi.it/dokuwiki/doku.php?id=ffnamespace:about|Home page]] for the FastFlow programming environment * [[http://sourceforge.net/projects/mc-fastflow/|Download]] link * [[sampleFastflowCode|Sample code]] ==== Muskel ==== * [[http://backus.di.unipi.it/~marcod/SPM/muskel.tgz|Download]] link ==== Further links ==== Further links, e.g. those related to other structured programming frameworks, may be found on the support [[http://didawiki.cli.di.unipi.it/doku.php/magistraleinformaticanetworking/spm/sdpm09support?&#target_architectures_sw|page]] of A.A. 2010-2011.