maspartwoup

Course: CS 635, Spring 2008
School: George Mason
Rating:
 
 
 
 
 

Word Count: 3584

Document Preview

Parallel Data Programming and the M AS PAR 1 Data Parallel Programming and the M AS PAR P.Y. Wang Department of Computer Science 4A5 George Mason University Fairfax VA 22030-4444 U.S.A. c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 2 A Data Parallel Programming Model Massive data level parallelism Homogeneous, ne-grain processors Local memory, arithmetic-logic...

Register Now

Unformatted Document Excerpt

Coursehero >> Virginia >> George Mason >> CS 635

Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.

Course Hero has millions of student submitted documents similar to the one below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
Parallel Data Programming and the M AS PAR 1 Data Parallel Programming and the M AS PAR P.Y. Wang Department of Computer Science 4A5 George Mason University Fairfax VA 22030-4444 U.S.A. c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 2 A Data Parallel Programming Model Massive data level parallelism Homogeneous, ne-grain processors Local memory, arithmetic-logic unit Interconnection network for data routing Single control sequence Instructions are sequentially broadcast from a main control unit to all processors PEs are masked in order for effective computation to the carried out Two sets programming instructions Host instruction set (sequential) PE instruction set (data parallel) c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 3 Major Features of High-Level Data Parallel Languages Data representation issues What are the basic language declarations that are used to declare single and parallel data structures? Parallel instructions How are parallel instructions coded? Processor selection How are processing elements masked out so that they do not participate in the execution of a parallel instruction? c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 4 Looping constructs What constructs in the languages can be used to repeat sections parallel code? Data aggregation and reduction What kinds of data aggregation and reduction operations are supported by data parallel languages? How are these operations coded? Data distribution and broadcasting What are the data distribution facilities provided by these languages? How are they implemented? Data routing What are the data routing facilities provided by these languages? c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 5 Maspar MP-2 Architecture Overview Consists of a front-end unit and a Data Parallel Unit (DPU) The front-end is a Unix graphics workstation with windowing capability and standard I/O devices The DPU consists of an Array Control Unit (ACU) and a processor element (PE) array c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 6 memory processor running UNIX OS ACU ACUPE bus PE Array Router standard I/O keyboard display Ethernet disk tape DPU FrontEnd c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 7 The ACU contains a processor with its own registers as well as data and instruction memory Five 32-bit registers for register variables, 128 KB of data memory, 1 MB RAM that expands to 4 GB of virtual instruction memory Controls the PE array and performs operations on singular data Sends data and instructions to each PE simultaneously c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 8 The PE (processor element) array: Each PE has sixteen 32-bit registers available for register variables Each PE has 16 KB of RAM PEs that are enabled (i.e. active) will execute the instructions on variables that reside on PEs PEs are arranged in matrices size 1 K, 2 K, 4 K, 8 K or 16 K that are either square or such that the number of columns is twice the number of rows (xed or toroidal wrap) c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 9 A PE cluster is a non-overlapping square matrix of 16 PEs in the PE array A 1 K PE array = sixty-four 4 4 PE clusters Clusters are important in global router communications c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 10 Communication types: Between ACU and PE array reect broadcast and reduction Between PE and PE occur in the PE array x-net communications Direct between and PE and any other PE that lies on a a straight line in the N/S/E/W or NE/NW/SE/SW directions router communications Arbitrary permutations of data among the PEs c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 11 MPL-Maspar Parallel Application Language MPL keywords: all K & R keywords are supported, including asm, but not entry and fortran all, globalor, plural, proc, router, visible, xnet[p,c]{N,S,E,W,NW,NE,SW,SE} plural type: Variable being declared is allocated identically to all PEs Declaration affects all PE s, in contrast to plural statements and functions c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 12 long long type: 64-bit integer data type unsigned or signed can be singular or plural plural types can be char, short, int, long long, long, unsigned, oat, double, enum, <struct-specier>, <union-specier> c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 13 Pointers: Singular pointer to singular data Singular pointer to plural data Plural pointers to plural data A PE can only point to its own memory Communications constructs xnet, router, proc must be used to access memory of some other PE The address of a plural variable is singular c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 14 Examples int lions; plural int tigers; plural int * bears; int *plural ohMy; plural int k; plural int *plural toto; lions is a singular variable ACU memory tigers is a plural variable in the PEs memory bears is a singular variable in the ACU memory and points to PE memory all values pointed to by bears have the same address c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 15 int *p int lions int a[5] plural int tigers plural int b[4] plural int * plural toto plural int *bears plural int k ACU Memory int * plural OhMy PE Array Memory c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 16 Note: int *plural ohMy; plural int k; k = *ohMy; *ohMy = k; The rst statement is well-dened. The last statement is undened when the value of ohMy is the same on two or more PEs. c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 17 register attribute: use with the plural variable advises the compiler to allocate the variable in a PE register cannot take the address of such a variable Plural arrays: array space is replicated across all PEs (we already saw this) Structure and union speciers: If a structure variable is declared it as plural, the entire structure is allocated on the PEs. Otherwise, the entire structure is allocated on the ACU. Structure and union members cannot be explicitly declared as plural c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 18 Example struct gangster { int legal member; }; struct gangster bonnie; plural struct gangster clyde; bonnie and bonnie.legal member are singular clyde and cyde.legal member are plural c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 19 struct members may be pointers to singular or plural data: struct { int * sopwith; plural int * fokker; } airplane; plural struct { int * redstone; plural int * viking; } rocket; plural struct farkle { struct farkle * frob; plural struct farkle * gleep; } x; x is a plural variable with members frob and gleep frob points to ACU memory while gleep points to PE memory c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 20 Function denitions: plural int fun(i) int i; { ... } This function has a singular argument and produces plural results. plural oat fun(x) plural oat x; { ... } This function has a plural arguments and produces plural results. c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 21 Front-End DPU Data Transfer The visible keyword makes the address of the identiers associated with it known (visible) to both the front-end and the DPU Any identiers that you pass by reference using callRequest(), copyIn(), copyOut(), blockIn(), blockOut() must be declared visible. Example: The front-end calling an MPL subroutine Front-End extern mpfun(); callRequest(mpfun,nnn,data); MPL Code visible mpfun() { ... } c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 22 Another Example Front-End int A[2048]; extern int X; blockOut(A,X, . . . ); blockIn(X,A, . . . ); MPL Code visible extern int A[2048]; visible plural int X; blockIn(A,&X, . . .); blockOut(&X,A, . . .); c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 23 Writing Expressions The arithmetic operators of K & R C have been extended to operate on plural operands It looks more or less like what you would expect int s1, s2; plural int p1; p1 = s1 + s2; p1 = p1 + s1; p1 = p1 + (plural int) s1; The operation singular object plural value is illegal. c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 24 Array subscripting plural int i, j; int wizard[4]; j = wizard[i]; PE 0 PE 1 PE 2 PE 3 PE 4 PE 5 i j 1 3 0 3 2 0 ACU 6 7 8 9 wizard[3] wizard[0] c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 25 plural int i, j; int wizard[4]; wizard[i] = j; PE 0 PE 1 PE 2 PE 3 PE 4 PE 5 i j 1 0 3 1 0 2 3 3 2 4 0 5 ACU undef wizard[0] undef wizard[3] c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 26 Dot and arrow: if a struct or union is plural, then dot ( . ) returns plural if the left operand is a pointer to a plural struct or union, then arrow ( ) returns plural AND, OR (||, &&): the result is plural if either operand is plural c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 27 Conditional expressions if any of the operands are plural, then the PEs for which the condition is true dene the active set globalor performs a bitwise OR operation on all values of a plural expression in the active set and returns a singular result c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 28 Processing Element Addressing MPL Predened variables are used to give the size and shape of the PE array. These permit each PE to know its relative position (self-address). c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 29 x 0 0 1 y 2 3 PE PE PE PE 1 PE PE PE PE 2 PE 3 PE PE PE PE PE PE PE PE PE c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 30 Size (singular): nproc = number of PEs nxproc = number of PEs in the x-direction = nyproc number of PEs in the y-direction Representation: lnproc = number of bits needed to represent nproc lnxproc = number of bits needed to represent nxproc lnyproc = number of bits needed to represent nyproc Self-addresses (plural): iproc = one-dimensional self-address: 0 . . . nproc-1 (row-wise) ixproc = x self-address: 0 . . . nxproc-1 iyproc = y self-address: 0 . . . nyproc-1 c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 31 Self-address Example if ( ixproc = = 2) { /* active set */ ... } c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 32 Processing Element (PE) Communications router uses linear view of the PE array proc: to access the value on a single PE int x; plural int pixel; x = proc[4].pixel; x = proc[0][63].pixel; xnet: PE to PE communications same direction and distance with toroidal wrap c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 33 XNET Example plural int i, j; ... i = xnetN[1].j; i = xnetN[1].j + xnetS[2].k; i = *xnetN[1].p; xnetN[1].j = i; xnetN[1].j = xnetSW[1].i; Remember: xnet on left hand side send right hand side fetch c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 34 XNETP xnetp like xnet except it is faster and pipelines its values through intermediate PEs Any PE along the pipeline that is active causes the pipelining to stop Example: external plural int iyproc; plural int coeff; if (iyproc == 5) { coeff = coeff + xnetpS[8].coeff; } row 13 is added to row 5 c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 35 XNETC xnetc like xnetp but it leaves copies in intermediate PEs along the way Example: plural oat coeff; if (ixproc == 6) { xnetcE[3].coeff = coeff; } column 6 is copied into columns 7, 8, and 9 c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 36 XNET for Non-regular Topologies plural int linear_shift (x) plural int x; { x = iproc; xnetE[1].x = x; if (ixproc == 0) xnetS[1].x. = x; return x; } 0 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 3 7 11 15 0 4 8 12 1 5 9 13 2 6 10 14 15 3 7 11 0 4 8 12 1 5 9 13 2 6 10 14 c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 37 ROUTER Communication Statement Each active PE will participate in general communication If router construct is on the left hand side of an assignment, then you are doing a send from the active set to the connected set If router construct is on the right hand side of an assignment, then you are doing a fetch from the connected set to the active set c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 38 ROUTER plural int i, j, k; iproc active i j k router[i].j = k; j k = router[i].j; k 0 1 2 17 19 Examples 1 0 1 23 29 2 0 3 31 37 3 1 0 41 43 ... 43 ___ 23 ___ 41 31 ___ 29 37 ___ c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 39 MPL Special Parallel Primitives Purpose: to compare/order PE instances of a plural variable (plural) i = enumerate (); depends on the active set unlike iproc, ixproc, iyproc which are static i = rankN (plural any type); integer order of argument on each PE returned into i of that PE N denotes data type (8, 8u, 16, 16u, 32, 32u, 64, 64u, f, d) psortN(plural any type); arranges the plural argument, putting the smallest value on PE with lowest self-address after doing psort(x), a rank(x) returns the list of integers matching enumerate c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 40 A Parallel Primitives Example PE active 0 1 1 0 2 0 3 1 4 0 5 1 i = enumerate(); i ___ 0 ___ ___ y = rank16(x); x y 4 ___ 5 ___ 8 ___ 6 ___ 1 0 3 1 c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 41 MPL Reduction Functions Denition: reduction is the singular result of performing an operation cumulatively on all elements of an array M AS PAR implementation details 1. size of array is determined by the active set (traversed linearly) 2. result is initialized to the operations identity element (but always returns 0 if there are no active PEs) c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 42 Conventions for use: #include < reduce.h > plural double reduceMuld(); double y; plural double x; ... y = reduceMuld(x); /* needed for type defs */ /* dened in reduce.h */ Sufxes are 8, 8u, 16, 16u, 32, 32u, 64, 64u, f, d Reduction functions are Mul, Add, And, Or, Max, Min c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 43 MPL SENDWITH Functions Motivation: with router, several PEs can send to the same destination When multiple PEs send data to the ACU, we can reduce them to a single value (using globalOR, reduceADD, etc). If a PE receives from many senders, the type of reduction should be specied by the programmer sendwithAdd8 is a hybridization of reduceAdd8 and the router construct Each receiving PE adds together all the data elements it gets during the sendwithAdd8 procedure c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 44 Note: if a PE is in the active set but receives no messages, the value returned on that PE is 0, regardless of the type of operation specied as part of the with in sendwith... Same reductions of Mul, Add, And, Or, Max, Min Same sufxes of 8, 8u, 16, 16u, 32, 32u, 64, 64u, f, d c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 45 Examples Sum from all active PEs into ACU receiver: sr = reduceAdd (pv); Here pv is plural and sr is singular. Sum from all active PEs to the receivers who are active PEs matching some senders destination: pr = sendwithAdd (pv,dest); Here pv, dest, result are plural. c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 46 MPL SCAN Functions scan performs an operation cumulatively on a list of PEs segmented scan performs an operation cumulatively on all PEs within a segment Within each segment, it is similar to reduction But unlike reduceAddd, for example, scanAddd returns a plural double result and intermediate sums are saved on intermediate PEs Currently supported functions are scanMul, scanAdd, scanAnd, scanOr, scanMax, scanMin sufxes are 8, 8u, 16, 16u, 32, 32u, 64, 64u, f, d c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 47 A segment is a series of PEs with a plural char variable containing 0, 0, 0, . . ., 0, 1 respectively Cumulative result is returned in each PE (by ascending iproc) Segment is conned to PEs in the active set For an unsegmented scan across all active PEs, set all seg = 0; Segment wraps from highest active PE to lowest active PE if (seg==1) on at least one active PE and (seg==0) on highest PE c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 48 Two SCAN Examples PE x seg 0 3 0 1 4 0 2 8 0 3 1 0 4 2 0 5 6 1 i = scanAdd16(x,seg); 3 7 i 15 16 ___ ___ PE x seg 0 3 0 1 4 0 2 8 1 3 1 0 4 2 0 5 6 1 i = scanAdd16(x,seg); i 3 7 15 1 3 ___ c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 49 MPL Statements (Summary) K & R used for singular statements/expressions The active set is the set of PEs enabled at the time if, switch, while, do, and for become plural when the controlling expressions is plural if statement if (plural expression) statement if (plural expression) statement1 else statement2 Both blocks may be executed by a different set of PEs c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 50 while statement the body is executed by the active PEs at each iteration, the active set is either the same as the previous active set or smaller than the previous active set can contain return(), break, and continue statements, but not goto() do statement: similar to while for statement: its plural if expr2 is plural for (expr1; expr2; expr3) statement NOTE: while, do and for restore to the original active set before execution, when they are nished c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 51 MasPar MPL Sample Program Find the average of all 8 neighbors using Toroidal connections Non-torioidal connections c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 52 The main.m Code /* main program for the average example */ #include <stdio.h> #include <stdlib.h> extern plural int avg( plural int src ); extern plural int nowrapAvg( plural int src ); main () { plural int i; plural int avg_value; plural int nowrapAvg_value; c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 53 i = 10*iproc; /* Give i some data on each PE*/ avg_value = avg( i ); if( iproc == 0 ) p_printf( " The average on processor 0", " with toroidal wrap : %d\n", avg_value ); nowrapAvg_value = nowrapAvg( i ); if( iproc == 0 ) p_printf( " The average on processor 0", " with no toroidal wrap: %d\n", nowrapAvg_value ); exit(0); } c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 54 The average.m Code #include <mpl.h> #define nowrapXN(d,val) #define nowrapXS(d,val) #define nowrapXW(d,val) #define nowrapXE(d,val) ((iyproc ((iyproc ((ixproc ((ixproc < d) ? 0 : xnetN[d].val) >= nyproc-d) ? 0 : xnetS[d].val) < d) ? 0 : xnetW[d].val) >= nxproc-d) ? 0 : xnetE[d].val) /* nowrapAvg() averages each pixel with the values of its 8 neighbors but doesnt wrap around the PE Array. It turns out that only 4 Xnets are necessary since the first line accumulates the NW and NE values into the N neighbor and the SW and SE values into the S neighbor. */ plural int nowrapAvg( plural int src ) { src += nowrapXW(1,src) + nowrapXE(1,src); src += nowrapXN(1,src) + nowrapXS(1,src); return(src/9); } c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY Data Parallel Programming and the M AS PAR 55 /* avg() averages each pixel with the values of its 8 neighbors. It turns out that only 4 Xnets are necessarY since the first line accumulates the NW and NE values into the N neighbor and the SW and SE values into the S neighbor. */ plural int avg( plural int src ) { src += xnetW[1].src + xnetE[1].src; src += xnetN[1].src + xnetS[1].src; return(src/9); } c 2004 P.Y. Wang G EORGE M ASON U NIVERSITY
Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more. Course Hero has millions of course specific materials providing students with the best way to expand their education.

Below is a small sample set of documents:

George Mason - CS - 583
CS 583 Data Structures and Algorithm Analysis Practice Homework 31] The following problems in the textbook may be useful exercises for studying binary search trees and red-black trees: 1. Page 260, # 12.2-4 2. Page 264, # 12.3-3, 3. Page 276, all e
George Mason - CS - 635
Parallel Sorting1Parallel SortingP.Y. Wang Department of Computer Science 4A5 George Mason University Fairfax VA 22030-4444 U.S.A.c 2004 P.Y. WangG EORGE M ASON U NIVERSITYParallel Sorting2Outline Important Issues (Serial and Paralle
George Mason - CS - 635
Control Parallel Programming1MIMD/Control-Parallel Programming IssuesP.Y. Wang Department of Computer Science 4A5 George Mason University Fairfax VA 22030-4444 U.S.A.c 2004 P.Y. WangG EORGE M ASON U NIVERSITYControl Parallel Programming
George Mason - CS - 367
CS 367Bits and BytesTopics Why bits? Representing information as bits Binary/Hexadecimal Byte representations numbers characters and strings InstructionsBit-level manipulations Boolean algebra Expressing in CCS 367 F07Why Dont Com
George Mason - CS - 699
Peer-to-Peer Information RetrievalPeer-to-Peer Information Retrieval Using Self-Organizing Semantic Overlay NetworksDistributed Hash Table (DHT)CAN, Chord, Pastry, Tapestry, etc. Scalable, fault tolerant, self-organizing Only support exact key mat
George Mason - CS - 699
The Entropia Machine for Desktop GridsBrad Calder, Andrew Chien, Ju Wang, Don Yang Oct 28,2004 Presented by: Dongyu LiuGrid Introduction Grid computing, which is defined ascoordinated resource sharing and problem solving in large, multi-institut
George Mason - CS - 699
Distributed Hash Tables (DHTs) Tapestry &amp; PastryCS 699/IT 818 Sanjeev Setia1AcknowledgementsSome of the followings slides are borrowed or adapted from talks by Robert Morris (MIT) and Ben Zhao (UC, Santa Barbara)21DHTs Distributed Hash
George Mason - CS - 699
Acknowledgements Peer to Peer File Storage SystemsCS 699Some of the followings slides are borrowed from a talk by Robert Morris (MIT)12P2P File Systems File Sharing is one of the most popular P2PTarget Usesnode node Internet node node nod
George Mason - CS - 699
SplitStream: High-Bandwidth Multicast in Cooperative Environments Muhammad Abdulla10/14/20041OutlineBasic ConceptsMulticasting The SplitStream approachStructured Overlay NetworkPastry ScribeSplitStream Design Experimental Results10/14/2
George Mason - CS - 699
Acknowledgements GIA: Making Gnutella-like P2P Systems ScalableYatin Chawathe, Sylvia Ratnasamy, Lee Breslau, Scott Shenker, and Nick Lanham SIGCOMM 2003Most of the followings slides are borrowed from the talk by Yatin Chawathe (Intel)12The P
George Mason - CS - 699
Publius A Robust, Tamper Evident, Censorship Resistant WWW Based Publishing SystemBy Lorrie Cranor Avi Rubin Marc Waldman AT&amp;T Labs New York UniversityProc. 9th USENIX Security Symposium, 2000 Presented by Anyi Liu Dec. 2, 2004AcknowledgmentsSo
George Mason - CS - 699
Incentives for P2P SystemsDaniel Garrison CS 699 George Mason University November 4, 2004Incentives for P2P SystemsIncentives Build Robustness in BitTorrentBram CohenWorkshop on Economics of Peer-to-Peer Systems, 2003Incentives-Compatible Pee
George Mason - CS - 699
Scribe: A large-scale and decentralized application-level multicast infrastructurePaper by: Miguel Castro, Peter Druschel, Anne-Marie Kermarrec, Antony Rowstron, IEEE JSAC,2002. Presented by: Sankardas RoyAcknowledgement : Wang Ting and Wei Ran, u
George Mason - CS - 699
The Impact of DHT Routing Geometry on Resilience and ProximityPresented by Noorullah MoghulKrishna Gummadi, Ramakrishna Gummadi, Sylvia Ratnasamy, Steve Gribble, Scott Shenker, Ion StoicaAcknowledgementThe slides were borrowed from Krishna Gumm
George Mason - CS - 707
Replication and Consistency in distributed systems (contd)Distributed Software SystemsA basic architectural model for the management of replicated dataRequests and replies C Clients C FE Front ends FE RM RMService RM Replica managers1System
George Mason - CS - 700
Computing Confidence Intervals for Sample DataTopics Use of Statistics Sources of errors Accuracy, precision, resolution A mathematical model of errors Confidence intervals For means For variances For proportions How many measurements are
George Mason - CS - 700
ANOVA- Analyisis of VarianceCS 7001Comparing alternatives Comparing two alternativesuse confidence intervals Comparing more than two alternatives ANOVA Analysis of Variance21Comparing More Than Two Alternatives Nave approach Comp
George Mason - CS - 700
Hypothesis TestingCS 7001Hypothesis Testing! Purpose: make inferences about a populationparameter by analyzing differences between observed sample statistics and the results one expects to obtain if some underlying assumption is true.! Null
George Mason - CS - 475
GEORGE MASON UNIVERSITY Computer Science Department CS 475 Concurrent and Distributed Software Systems Spring 2003 Assignment 2 Multithreaded Programming DUE DATE March 10Process Synchronization The goal of this exercise to give you some experien
George Mason - CS - 475
Peer to Peer ComputingComputer Networking: A Top Down Approach Featuring the Internet, 2nd edition.Jim Kurose, Keith Ross Addison-Wesley, July 2002.These slides are based on the slides made available by the authors of1Peer-peer computing and
George Mason - CS - 475
Introduction to Web Services Concurrent &amp; Distributed Software Systems1Motivation Todays Web Designed for human-application interactions Browser front-endDoes not support application-application interaction on the web Web services Enable
George Mason - CS - 475
GEORGE MASON UNIVERSITY Computer Science Department Concurrent &amp; Distributed Software Systems - CS 475 Spring 2003 Assignment 3 Network Programming using Sockets DUE DATE April 7Write a HTTP 1.0 client and server The client and server must interac
George Mason - CS - 475
Concurrent ProgrammingProf. Sanjeev Setia Concurrent &amp; Distributed Software Systems CS 475CS 475 - Spring 20031Hardware ArchitecturesUniprocessors Shared-memory multiprocessors Distributed-memory multicomputers Distributed systemsCS 475 -
George Mason - CS - 475
RPC &amp; RMIConcurrent &amp; Distributed SoftwareRMI1Motivationr Sockets API send &amp; recv calls I/O r Remote Procedure Calls (RPC) m Goal: to provide a procedural interface for distributed (i.e., remote) services m To make distributed nature of ser
George Mason - CS - 475
Concurrent &amp; Distributed Software SystemsCS 475 Spring 2003 Prof. Sanjeev SetiaAbout this ClassDistributed systems are ubiquitous Focus: designing and writing moderatesized concurrent &amp; distributed applications Prerequisites:CS 471 (Operating Sy
George Mason - CS - 475
RMI: Design &amp; ImplementationConcurrent &amp; Distributed SoftwareRMI1Middleware layersApplications, services RMI and RPC request-reply protocol marshalling and external data representation UDP and TCP Middleware layersRMI21Design Issues f
George Mason - CS - 475
Client-Server ApplicationsProf. Sanjeev Setia Distributed Software Systems CS 707Distributed Software Systems1Client Server SystemsDistributed Software Systems21Client/Server ApplicationDistributed Software Systems3Overviewz Co
George Mason - CS - 475
Creating and using threadspthread_t thread; int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start)(void *),void *arg); pthread_t pthread_self(void); int pthread_exit(void *value_ptr); int pthread_detach(pthread_t thread);
George Mason - CS - 475
TCP, UDP revisitedConcurrent &amp; Distributed Software SystemsNetwork Programming with socketsz Need to understand how TCP and UDP work in order to design good application-level protocolsycritical for designing protocols that will be scalablexHT
George Mason - CS - 475
GEORGE MASON UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE CS 475 Concurrent &amp; Distributed Software Systems Spring 2003 Assignment 1: DUE Feb 10Experiment 1. Thread and Process Creation Study the programs thr_create.c and fork.c. Compile and execute t
George Mason - CS - 475
Applications and application-layer protocolsApplication: communicating, distributed processes m running in network hosts in user space m exchange messages to implement app m e.g., email, file transfer, the Web Application-layer protocols m one piece
George Mason - CS - 475
GEORGE MASON UNIVERSITY Computer Science Department Concurrent &amp; Distributed Software Systems Spring 2003 Assignment 4 A Calendar Tool for Work Groups DEMO DATE: May 5 1 IntroductionThe goal of this assignment is to introduce you to the use of CORBA
George Mason - CS - 475
Networks: OverviewNetwork typesRange LAN 1-2 kms WAN worldwide MAN 2-50 kms Wireless LAN 0.15-1.5 km Wireless WAN worldwide Internet worldwideBandwidth (Mbps) Latency (ms) 10-1000 0.010-600 1-150 2-11 0.010-2 0.010-2 1-10 100-500 10 5-20 100-50
George Mason - CS - 475
Improving Web PerformanceComputer Networking: A Top Down Approach Featuring the Internet, 2nd edition.Jim Kurose, Keith Ross Addison-Wesley, July 2002.These slides are based on the slides made available by the authors of1Improving Web Perfor
George Mason - CS - 475
BackgroundConcurrent access to shared data may result in data inconsistency. Maintaining data consistency requires mechanisms to ensure the orderly execution of cooperating processes. Bounded Buffer problem (also called producer consumer problem)1
George Mason - CS - 700
CS 700 Exercise 3 Due March 51 1. Write a Monte Carlo simulation to calculate the integral 0 (1 x)/1 + x)dx. Use the method of independent replications to compute the result with an accuracy of 5% for a condence level of 95%.2. A service facilit
George Mason - CS - 700
Simulation1Types of simulationEmulationMonte-Carlo simulation Simulation using hardware or firmware, e.g. execute IA32 (Intel) programs on Power-PC platforms by emulating instructions No notion of time Used to model probabilistic pheno
George Mason - CS - 818
4/22/08Secure Location Verification with Hidden and Mobile Base StationsS. Capkun, K.B. Rasmussen - Department of Computer Science, ETH Zurich M. Cagalj FESB, University of Split M. Srivastava EE Department, UCLA Presenter - Imran ShahOutline
George Mason - CS - 367
CS 367 Some topics in Memory ManagementTopics Garbage collection Memory-related perils and pitfallslec17.pptImplicit Memory Management: Garbage CollectionGarbage collection: automatic reclamation of heapcollection: allocated storage - applic
George Mason - CS - 707
prog.rammingby Jon B e n t l e ypearlsTHE BACK OF THE ENVELOPEIt was in the middle of a fascinating conversation on software engineering that Bob Martin asked me, &quot;How much water flows out of the Mississippi River in a day?&quot; Because I had found
George Mason - CS - 632
Introduction &amp; OverviewJeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 632 User Interface Design and Development Shneiderman, Ch. 1What is This Class? Psychology human factors ?NOT (Psychology) (CS) (Skills) Graphics ? GUI Programming ? A de
George Mason - CS - 432
Introduction to JDBCMichelle Lee, Ye Wu &amp; Jeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebJDBC JDBC (Java Database Connectivity) API allows Java programs to connect to databases Database access
George Mason - CS - 432
Session Tracking in Java ServletsJeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebSession State Information The initial versions of the web suffered from a lack of state:HTML FormDataServer
George Mason - CS - 432
User Interface OverviewJeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 S Design and Implementation of Software for the WebWhat is Usability Engineering? Requires knowledge of some psychology theory Uses graphics not how, but what to do wit
George Mason - CS - 432
Web Site DesignJeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design d Implementation of S ft D i and I l t ti f Software f th W b for the WebNielsen, Ch 4Usability of Web Site Design Users only find information they are searching for on
George Mason - CS - 432
UNIX MADE EASYJe O utt1 DIRECTORIESA major structural basis for Unix is the tree format of the user directories. Files are stored as entries in the nodes of a large tree that encompasses the entire disks. Each user has a home directory&quot; that is a
George Mason - CS - 432
Menu Design GuidelinesJeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the Web1/21/2006 Jeff Offutt, 2001 1Web Interfaces Web interfaces are composed of: Menus Forms GUIs We will look at each of
George Mason - CS - 432
Design and Maintenance of Java Server PagesJeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebJSP Maintenance Problems Presentation and content are not always well separated Java mixed with the HT
George Mason - CS - 432
Introduction to Java Server PagesJeff Offutt &amp; Ye Wu http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebEnabling Technologies - Plug-ins Scripted PagesFrom servlets lecture . Scripted pages look like HTML
George Mason - CS - 432
ResponsibilitiesJeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebResponsibilities of Professor Prepare useful and interesting knowledge for you Come to class on time, prepared to teach Offer
George Mason - CS - 432
Using Servlet Contexts to Deploy ServletsJeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebDeploying Servlets : Servlet Contexts Every servlet is deployed as part of a servlet context Servlet con
George Mason - CS - 432
Web Site SoftwareJeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebWhere is the wisdom we lost in knowledge? Where is the knowledge we lost in information? T.S. EliotMotivation Overview Modern
George Mason - CS - 432
Introduction to Java ServletsJeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebWeb Applications A web application uses enabling technologies to1. make web site contents dynamic 2. allow users of
George Mason - CS - 432
The Scientific Method( adapted from a PhD Seminarand a High School Talk )Jeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the Web Offutt, 2004-20071Comparing Computing FieldsCalc-2, discrete math
George Mason - CS - 432
An Overview of Java Part III - Classes and ObjectsJeff OffuttRoger Alexander http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebFall 2007 : Created 432Lec08-Java.ppt cut most of JavaI and JavaII, then merged.
George Mason - CS - 432
THE IMPORTANCE OF ERROR MESSAGES(and other feedback messages)IN THE USER INTERFACE Jeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebThe needs of both people and machines can be reconciled; users
George Mason - CS - 432
Security for Web-based ApplicationsJeff Offutt &amp; Nick Duan http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebSecurity Through Time 100 BC Rome : magic charms 1400s England : not much worth stealing, arme
George Mason - CS - 432
Graphical User Interfaces (GUI)Jeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebGUI Flow Flow: The next thing the interface wants to do is exactly what the user expects. Follow users mental
George Mason - CS - 432
Hyper Text DesignJeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the WebThanks in part to: Jorn Barger (inventor of the weblog)GUI Overview Graphical User Interfaces (GUI) are formed of Windows
George Mason - CS - 432
The Use of Color in User InterfacesJeff Offutt http:/www.ise.gmu.edu/~offutt/ SWE 432 Design d Implementation of S ft D i and I l t ti f Software f th W b for the WebColor Topics The Eyes Color Guidelines Physiological Perceptual Cognitive
George Mason - CS - 432
Quick Overview of HTML and JavaScriptsJeff Offutt http:/www.ise.gmu.edu/~offutt/SWE 432 Design and Implementation of Software for the Web g psources: HTML 4 for the World Wide Web, Castro, Peachtree Press Core Web Programming, Hall, PTROutline