13 Pages

6-mt

Course: CPS 220, Fall 2009
School: Duke
Rating:
 
 
 
 
 

Word Count: 3946

Document Preview

and Multiprocessors Multithreading why multiprocessors and/or multithreading? what workloads do they run well Readings H+P chapter 6 6.16.4, 6.76.9 types of MT/MP Flynn's taxonomy message passing vs. shared memory newer stuff: CMP, SMT Recent Research Papers SMT (Simultaneous Multithreading) Multiscalar interconnection networks why caching shared memory is challenging cache coherence,...

Register Now

Unformatted Document Excerpt

Coursehero >> North Carolina >> Duke >> CPS 220

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.
and Multiprocessors Multithreading why multiprocessors and/or multithreading? what workloads do they run well Readings H+P chapter 6 6.16.4, 6.76.9 types of MT/MP Flynn's taxonomy message passing vs. shared memory newer stuff: CMP, SMT Recent Research Papers SMT (Simultaneous Multithreading) Multiscalar interconnection networks why caching shared memory is challenging cache coherence, synchronization, and consistency just the tip of the iceberg -- take ECE 259/CPS 221 for more! ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti 1 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti 2 Threads, Processes, Processors, etc. some terminology to keep straight process thread processor (we should know what this is!) thread context multithreaded processor multiprocessor many issues are the same for MT and MP will discuss in terms of MPs, but will point out MT diffs Why Parallel Processing? multiple processors working together, why? performance: break physical limits of uniprocessing ILP (branch prediction, RAW dependences, etc.) cost and cost effectiveness build big systems from commodity parts (ordinary uniprocessors) enough transistors to make MT processors enough transistors to make MP on a single chip (CMP)! other smooth upgrade path (keep adding processors) fault tolerance (one processor fails, still have P-1 working) power-effective (remember Mudge's paper on power) 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 3 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 4 Chip Multiprocessors trend today: multiprocessors on a single chip (CMPs) can't spend all of the transistors on just one processor with limited ILP, single processor would not exploit it Multithreaded Processors another trend: multithreaded processors processor utilization: IPC / processor width decreases as processor width increases (~50% on 4 wide) why? cache misses, branch mis-predictions, RAW dependences e.g., IBM POWER4 1 chip contains: 2 1GHz processors, L2, L3 tags, interconnect can connect 4 chips on 1 MCM to create 8 processor system targets threaded server workloads p1 p1 bus control idea: two (or more) processes (threads) share one pipeline replicate process (thread) state PC, register file, bpred history, page table pointer, etc. one copy of stateless (or naturally tagged) structures caches, functional units, buses, etc. L2 L3 tags hardware thread switch must be fast multiple on-chip contexts no need to load from memory 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 5 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 6 Two Multithreading Paradigms coarse-grained in-order processor with short pipeline switch threads on long stalls (e.g., L2 cache misses) instructions from one thread in stage per cycle + threads don't interfere with each other much can't improve utilization on L1 misses, or branch mispredictions e.g., IBM Northstar/Pulsar (2 threads) Why Parallel Processing Is Hard in a word: software difficult to parallelize applications compiler parallelization hard by-hand parallelization maybe harder (very error prone, not fun) difficult to make parallel applications run fast communication very expensive (must be aware of it) synchronization very complicated fine-grained: simultaneous multithreading (SMT) out-of-order processor with deep pipeline instructions from multiple threads in stage at same time + improves utilization in all scenarios individual thread performances suffer due to interference e.g., Pentium4 = 2 threads, Alpha 21464 (R.I.P.) = 4 threads 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 7 IT'S THE SOFTWARE, STUPID! 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 8 Amdahl's Law Revisited speedup = 1/ [fracparallel/speedupparallel + 1 fracparallel] example achieve speedup of 80 using 100 processors 80 = 1 / [fracparallel/100 + 1 fracparallel] fracparallel = 0.9975 only 0.25% work can be serial! Application Domain 1: Parallel Programs true parallelism in one job regular loop structures data usually tightly shared automatic parallelization called "data-level parallelism" can often exploit vectors as well for (i=0;i<1000;i++){ A[i] = B[i]*C[i]; } good application domains for parallel processing problems where parallel parts scale faster than serial parts e.g., O(N2) parallel vs. O(N) serial interesting programs require communication between parallel parts problems where computation scales faster than communication workloads scientific simulation codes (e.g., FFT, weather, fluid dynamics, etc.) was the dominant market segment of 1015 years ago 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 9 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 10 Parallel Program Example: Matrix Multiply N P parameters N = size of matrix (N*N) P = number of processors Application Domain 2: Parallel Tasks parallel independent-but-similar tasks irregular control structures loosely shared data locked at different granularities programmer defines & fine-tunes parallelism cannot exploit vectors growth functions computation grows as f(N ) computation per processor grows as data size grows as f(N ) data size per processor grows as f(N2/P) communication grows as f(N2/P1/2) computation/communication = f(N/P1/2) 2 3 f(N3/P) called "thread-level parallelism" or "throughput-oriented parallelism" workload transaction processing, OS, databases, web-servers e.g., assign a thread to handle each request to server dominant MP/MT market segment today (by far) 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 11 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 12 Parallel Task Example: Bank Database parameters D = number of accounts P = number of processors in central server N = number of ATMs (parallel transactions) Taxonomy of Processors Flynn Taxonomy [1966] not universal, but simple dimensions instruction streams: single (SI) or multiple (MI) data streams: single (SD) or multiple (MD) growth functions computation: f(N) computation per processor: f(N/P) what is communication? have to lock records while changing them communication: f(N) computation/communication: f(1) + but no serial parts! cross-product SISD: uniprocessor (been there) SIMD: vectors (skimmed that - refresher on next slide) MISD: no practical examples (won't do that) MIMD: multiprocessors + multithreading (doing it now) 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 13 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 14 SIMD Vector Architectures different type of ISA that has vector instructions addv $v1, $v2, $v3 # v1 = v2 + v3 vector registers are like V N-bit scalar registers for example, 128 32-bit values SIMD vs. MIMD why are MPs (much) more common than vector processors? programming model flexibility can simulate vectors with an MP, but not the other way around dominant market segment cannot exploit vectors can operate on all entries of vector at once many Cray systems were vector architectures useful for "vector code" for i=1 to 128 { sum [i] = addend1 [i] + addend2 [i]; } cost effectiveness commodity part: high volume (translation: cheap) component MPs made up of commodity parts (i.e., microprocessors) can match size of MP to your budget can't do this for a vector processor footnote: vectors are making a comeback for graphics/multimedia applications (MMX, SSE, Tarantula) NEC's EarthSimulator is an MP of vector processors 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 15 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 16 Taxonomy of Parallel (MIMD) Processors again, two dimensions focuses on organization of main memory (shared vs. distributed) m0 m1 m2 m3 long latency p0 interconnect p1 p2 p3 UMA vs. NUMA UMA: uniform memory access from p0, same latency to m0 as to m3 + data placement unimportant (software is easier) latency long, gets worse as system grows interconnect contention restricts bandwidth typically used in small multiprocessors only dimension I: appearance of memory to hardware Q: is access to all memory uniform in latency? shared (UMA): yes where you put data doesn't matter distributed (NUMA): no where you put data really matters dimension II: appearance of memory to software Q: can processors communicate via memory directly? shared (shared memory): yes communicate via loads/stores distributed (message passing): no communicate via messages long latency short latency interconnect m0 m1 m2 m3 p0 p1 p2 p3 NUMA: non-uniform memory accesss from p0 faster to m0 (local) than m3 (non-local) + low latency to local memory helps performance data placement important (software is harder) + less contention (non-local only) more scalable typically used in larger multiprocessors ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 18 dimensions are orthogonal e.g., DSM: (physically) distributed (logically) shared memory 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 17 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti Interlude: What Is "Interconnect"? connects processors/memories to each other direct: endpoints (i.e., procs, mems) connected directly (e.g., mesh) indirect: endpoints connected via switches/routers (e.g., tree) m0 m1 m2 m3 Interconnect 1: Bus direct interconnect + cost f(1) wires p0 p1 p2 p3 interconnect issues latency: average latency most important (locality optimizations?) bandwidth: per processor (also, bisection bandwidth) cost: # wires, # switches, # ports per switch scalability: how latency, bandwidth, cost grow with # processors (P) + latency: f(1) no neighbor/locality optimization bandwidth: not scalable at all, f(1/P) only used in small systems (P <= 8) m0 m1 m2 m3 p0 p1 p2 p3 we're mainly concerned with interconnect topology can have separate interconnects for addresses and data + capable of ordered broadcast incapable of anything else new: logical buses w/point-to-point links tree = logical bus, if all messages go to root e.g., Sun UltraEnterprise E10000 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 19 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 20 Interconnect 2: Crossbar Switch indirect interconnect + latency: f(1) m0 m1 m2 m3 p0 p1 p2 p3 p0 no locality/neighbor optimizations Interconnect 3: Multistage Network indirect interconnect routing done by address bit decoding k: switch arity (# inputs and outputs per switch) m0 m1 m2 m3 d: number of network stages = logkP + bandwidth: f(1) cost f(2P) wires f(P2) switches 4 wires per switch p1 p2 p3 + cost f(d*P/k) switches f(P*d) wires f(k) wires per switch + latency: f(d) + bandwidth: f(1) commonly used in large UMA systems a.k.a. butterfly, banyan, omega 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 21 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 22 Interconnect 4: 2D Torus direct interconnect + p/m p/m p/m p/m p/m p/m p/m p/m p/m p/m p/m p/m p/m p/m p/m p/m no dedicated switches latency: f(P1/2) locality/neighbor optimization p/m p/m p/m p/m Interconnect 5: Hypercube direct interconnect k: arity (# nodes per dimension) d: dimension = logkP in figure: P = 16, k = 2, d = 4 p/m p/m p/m p/m + bandwidth: f(1), scales with P + cost f(2P) wires 4 wires per switch + latency: f(k/d) locality/neighbor optimized + bandwidth: f((k1)*d) p/m p/m p/m p/m p/m p/m p/m p/m cost f((k1)*d*P) wires f((k1)*d) wires per switch good scalability widely used variants: 3D, mesh (no "wraparound") e.g., Alpha 21364-based MPs ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading good scalability, expensive switches switch changes as nodes are added 23 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 24 Interconnect Routing store-and-forward routing switch buffers entire message before passing it on latency = [(message length / bandwidth) + fixed overhead] * # hops Avoiding Deadlock in Interconnect two types of deadlock routing deadlock circular dependence on buffers full full full full wormhole routing pipeline message through interconnect switch passes message on before completely arrives latency = (message length / bandwidth) (fixed + overhead * # hops) + no buffering needed at switch + latency (relatively) independent of number of intermediate hops solutions routing restrictions (turn model) virtual channels request/response deadlock circular dependence on messages A resp to B req A B req B resp to A solutions separate networks virtual networks 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 25 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 26 Shared Memory vs. Message Passing MIMD dimension II: appearance of address space to software message passing (multicomputers, clusters) each processor has its own address space (and unique processor #) processors send (receive) messages to (from) each other communication pattern explicit and precise (only way) used for scientific codes (explicit communication patterns) message passing systems: PVM, MPI + simple hardware difficult programming model (in general) Shared Memory vs. Message Passing shared memory (multiprocessors) one shared address space processors use conventional loads/stores to access shared data communication can be complex/dynamic + simpler programming model (compatible with uniprocessors) but with its own nasties (e.g., synchronization) more complex hardware... (we'll see soon) + but more room for hardware optimization aside: software shared virtual memory (SVM) exists 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 27 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 28 (Not Too) Recent Parallel Systems machine SPARCcenter SGI Challenge Cray T3D Convex SPP KSR-1 TMC CM-5 Intel Paragon IBM SP-2 communication shared memory shared memory shared memory (nc) shared memory shared memory messages messages messages interconnect bus bus 3D torus X-bar/ring bus/ring fat tree 2-d mesh multistage #cpus <=20 <= 32 64-1024 8-64 32 64-1024 32-2048 32-256 remote latency (us) 1 1 1 2 2-6 10 10-30 30-100 Multiprocessor Industry Trends shared memory easier, more dynamic program model (it IS the software, stupid!) can do more to optimize the hardware small-to-medium size UMA systems (28 processors) processors + memory + switch on single board (e.g., quad Pentium) same thing on a single chip (e.g., IBM POWER4) commodity part of the future (present?) glueless MP: slap these together and MP just works! e.g., Opteron we will concentrate on shared memory systems more hardware oriented market is going this way speaking of which... 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 29 larger NUMA systems built from smaller (N)UMA systems exploit commodity nature of small systems use commodity interconnect (e.g., gigabit Ethernet, Myrinet) called NUMA clusters 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 30 Caching Shared Memory three issues cache coherence synchronization memory consistency model example processor 0 ----------read A Cache (In)Coherence most common cause: sharing of writeable data processor 1 ----------read A write A read A correct value of A is in.. -------------------------memory memory, p0 cache memory, p0 cache, p1 cache p0 cache, memory (if wthru) p1 gets stale value on hit not completely unrelated to each other not issues for message passing machines why not? other causes process migration (even if jobs are independent) I/O (can be fixed by OS cache flushes) 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 31 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 32 Solutions to Coherence Problem no caches not a good solution - caches are important! Cache Coherence Protocols absolute coherence all copies of each block have same data at all times not necessary make shared-data non-cacheable + simplest software solution low performance if a lot of data is shared what is required is appearance of absolute coherence temporary incoherence is OK (e.g., write-back cache) as long as all loads get "correct" values software flush at strategic times: e.g., after critical sections + relatively simple low performance if synchronization is frequent cache coherence protocol: FSM that runs at every cache and usually a FSM at every memory, too hardware cache coherence make memory and caches coherent (consistent) with each other in other words: let memory and other processors see writes invisible to software 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 33 two kinds of protocols: depends on how writes handled invalidate protocol: invalidate copies in other caches update protocol: update copies in other caches 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 34 Bus-Based Protocols (Snooping) bus-based cache coherence protocol (snooping) ALL caches/memories see and react to ALL bus events protocol relies on global visibility of requests (ordered broadcast) owner (either proc or mem) responds to request with data proc proc cache proc cache proc cache BUS memory Snooping Protocol Events requests from proc/cache to cache coherence controller load (Ld) store (St) writeback (WB) bus events (= cache coherence transactions) GetShared (GETS) - broadcast request for read-only data GetExclusive (GETX) - broadcast request for read-write data PutExclusive (PUTX) - broadcast request to write data back to mem cache coherence transactions on bus can be from self or others we'll assume atomic bus transactions thus, we have atomic cache coherence transactions 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 35 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 36 Two-State (MI) Invalidate Protocol two states invalid: either don't have block or have it but not allowed to use it modified: have block with read-write access Three-State (MSI) Invalidate Protocol three states idea: add new "read-only" state (shared) - allows multiple readers! invalid modified: have block with read-write access shared: have block with read-only access St/OwnGETX problem block can be in only one cache at a time not efficient, especially if data is only being read {Ld,St}/OwnGETX invalid -/OtherGETX WB/OwnPUTX modified notation "a/b": a = proc request b = coherence transaction blue = upgrade red = downgrade invalid -/OtherGETX WB/OwnPUTX w St /O modified ET nG X S ET G X wn ET /O G Ld er th -/O B/ W shared -/O th G er S ET 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 37 2006 by Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti ECE 252 / CPS 220 Lecture Notes Multiprocessors and Multithreading 38 Scalable Coherence Protocols: Directories bus-based protocols (i.e., broadcast) are not scalable! not enough bus b/w for everyone's coherence traffic not enough processor snooping b/w to handle everyone's traffic Directory Protocol in Action (MI) Node 1 = requestor (I -> M) proc/mem St/GETX proc/mem Node 2 = home of block directories: scalable cache coherence for large MPs each memory entry (cache line) has a bit vector (1 bit per processor) bit vector tracks which processors have cached copies of line send all requests to directory at home memory if no other cached copies, memory is owner and returns data otherwise, memory forwards request to current owner processor + low b/w consumption (communicate only with processors that care) + works with general interconnect (bus not needed) longer latency (3-hop transactions: p0 directory p1 p0) Data proc/mem ForwardedGETX (N1) Node 3 = current owner of blo...

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:

Duke - CPS - 220
Instruction Sets what is an instruction set? what is a good instruction set? the forces that shape instruction sets aspects of instruction sets instruction set examples RISC vs. CISC 2006 by Lebeck Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipas
Penn State - CH - 448
Chemistry 448 Fall 2000 Exam #2This is a 90 minute exam. It is open notes, but not open book. You may use any handwritten or typed (by you) notes prepared prior to starting the exam.Do NOT proceed to page 2 until you are ready to start (and continue for
UMBC - CS - 345
System Design Document Template CMSC 345, Spring 2002This template for this system design document (SDD) is adopted from the IEEE Software Engineering Standards Collection, IEEE Press and other SDD templates. Title Page - Name of document (refer to produ
UMBC - CS - 345
Software Design OverviewReference: Software Engineering, by Ian Sommerville, Ch. 12 &amp; 131Topics What is Design? Design Description The Design Process Architectural Design Design Strategies Design Quality Component Cohesion Component Coupling2What
UMBC - CS - 345
Requirements Engineering ProcessesqProcesses used to discover, analyse and validate system requirementsIan Sommerville 2000Software Engineering, 6th edition. Chapter 6Slide 1Objectivesqqq qTo describe the principal requirements engineering activ
UMBC - CS - 345
Software Requirements Descriptions and specifications of a systemIan Sommerville 2000Software Engineering, 6th edition. Chapter 5Slide 1Objectives To introduce the concepts of user and system requirements To describe functional and non-functional re
UMBC - CS - 345
Software ProcessesqCoherent sets of activities for specifying, designing, implementing and testing software systemsIan Sommerville 2000Software Engineering, 6th edition. Chapter 1Slide 1Objectivesq qqqTo introduce software process models To desc
UMBC - CS - 345
IntroductionqGetting started with software engineeringIan Sommerville 2000Software Engineering, 6th edition. Chapter 1Slide 1ObjectivesqqqTo introduce software engineering and to explain its importance To set out the answers to key questions abo
UMBC - CS - 345
Object-oriented Design Designing systems using selfcontained objects and object classesIan Sommerville 2000Software Engineering, 6th edition. Chapter 12Slide 1Characteristics of OODqqqqqObjects are abstractions of real-world or system entities a
UMBC - CS - 345
CMSC 345 Spring 2002 Individual Grade Sheet for Final Product Delivery Date: _ Name: _ Team: _ Grade: _Role during delivery: _Did the student participate in a meaningful way?Did the student present his/her material in a clear, organized manner?Was the
CSU East Bay - CS - 2020
User Testing1Hall of Fame or Hall of Shame?frys.com2Hall of ShameDoes not follow OBVIOUS LINKS (K10) pattern Navigation separate from contentno links on rightWhy is this about Fry's ISP?I'm looking for a store!3Outline Whydo user testing? Cho
Sanford-Brown Institute - CS - 167
Time, Etc.CS 167XXIX1Copyright 2006 Thomas W. Doeppner. All rights reserved.XXIX1Outline What time is good for . Clock Synchronization Logical Clocks TransactionsCS 167XXIX2Copyright 2006 Thomas W. Doeppner. All rights reserved.XXIX2What Time i
Lake County - ECE - 461
University of Illinois Assigned: Due: Reading:Problem Set #13 Page 1 of 2 Thursday December 3, 1998 Thursday December 10, 1998 Pursley, Introduction to Digital Communications, Chapter 8 (on reserve in Grainger Library Blahut, Introduction to Telecommunic
Cal Poly - X - 406
Embryo Flushing &amp; Grading3-1Objective: The goal of this lab is for the student to be able to successfully flush 1 -cell zygotes and 8-cell embryos from the oviduct of the mouse. Subsequently, each student shall be able to successfully culture their embr
Cal Poly - X - 406
In Vitro FertilizationObjective In this lab you will learn what IVF is used for and the proper procedure for IVF. You will also learn: How to retrieve sperm from the cauda epididymis, What to look for in healthy sperm, How to count sperm, When to check f
Cal Poly - X - 406
Applied Animal Embryology Winter 2002Instructor: Debbie Beckett Office: 10-101 Work phone : 756-7011 Home phone : 786-4754 Office hours : Thursday 11-12 and 1:30-2:30 TA: Jen Pettit Mobile phone : 801-0349Course objectives: 1. Students should acquire ha
Lake County - EXAMS - 353
ANSWER KEY NAME_BIOCHEMISTRY 353, SPRING 2002 SECOND HOUR EXAM, MARCH 6, 2002 Before you start, PRINT your name on each page. Be sure to print your name at the top of each page. Notes of any kind are NOT permitted. Confine your answers to the space provi
Auburn - E - 5200
ELEC 5200/ELEC 6200 Computer Architecture and Design Class Test II, October 27, 2004 Broun 306, 8:00-8:50AMTotal 24 pointsInstructions: Please read all questions before writing your answers and attempt all four (4) questions. Be sure to revise your answ
Auburn - E - 6200
ELEC 5200/ELEC 6200 Computer Architecture and Design Class Test II, October 26, 2007 Broun 306, 11:00-11:50AMTotal 24 pointsInstructions: Please read all problems before writing your answers. Attempt all five (5) problems. Be sure to revise your answers
North Texas - FILES - 836
Weathering &amp; ErosionScience Concepts TEKS 7.14 The student knows that natural events and human activity can alter Earth systems. The student is expected to: (A) describe and predict the impact of different catastrophic events on the Earth; (B) analyze e
Lake County - ECE - 461
University of Illinois 1.(a)Problem Set #5: Solutions Page 1 of 4ECE 361 Spring 2001The signals are illustrated below for the two cases 0 T/2 and T/2 &lt; T. They are obviously orthogonal if = 0 or = T. They are not antipodal for any . 0 T/2, T/2 Ts0(t)
Whitman - M - 300
MATH 300, Second Exam REVIEW QUESTIONSYou should also look at the supplementary exercises for Chapter 4, problems 1-111. Let u = and u + v.2 1and v =-2 1, and A =4 53 3. Let S be the parallelegram with vertices at 0, u, v, Compute the area of S.
Penn State - ME - 360
ME 360 Fall 2008 HW14Name _Chris Allen's first job at ABC Corporation was to analyze stress on bolts used in a new lawn mower being developed for the consumer market and recommend a vendor to supply 100,000 bolts per year. Based on conservative estimate
VCU - PDFS - 20012
36School of the Arts APPM ARTHm Sum er2001ARTF 104 DESIGN FUNDAMENTALS11820 001 (2) MTWR 0100PM 0250PM STAFF Jun 18 Jul 26 (6 wks) FTERR 0202School of the ArtsApplied MusicPrivate lessons in most instruments are available to those who read music a
Lake County - ECE - 313
UNIVERSITY OF ILLINOIS, URBANA-CHAMPAIGN Department of Electrical and Computer Engineering ECE 313: Probability with Engineering Applications-Fall 2003 Problem Set 4: Mean, Variance, and Estimation Issued: September 19, 2003 Reading Assignments: Ross, Cha
CSU Fullerton - ISDS - 361
Chapter 1010.1 A point estimator is a single value; an interval estimator is a range of values.10.2 An unbiased estimator of a parameter is an estimator whose expected value equals the parameter.10.310.410.5 An unbiased estimator is consistent if the
Sanford-Brown Institute - CSCI - 2950
A Distributed Filtering Architecture for Multimedia SensorsSuman Nath, Yan Ke, Phillip B. Gibbons, Brad Karp, and Srinivasan SeshanIRP-TR-04-16 August, 2004INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS
Washington - M - 112
MATH 112 C Exam II - Version 1 February 26, 2004Name Student ID # Section1 2 3 Total16 17 17 50 You are allowed to use a calculator, a ruler, and one sheet of handwritten notes. Please check that your exam contains three problems on three pages. Pleas
Iowa State - COMS - 541
CS 541 Lecture -*- Outline -*-* Structural operational semantics of mini Cecilwork out the semantics of mini Cecil in class.* overview* multiple implementations of a typethis allow variant-like (sum) data structures(otherwise only have record-lik
Iowa State - COMS - 541
CS 541 Lecture -*- Outline -*- * stream design examplemain focus is conceptual modeling.could put coding problem in a class.Streams (from Rich Wagner's thesis.)Motivation is animation,want to move an icon from point S to point E in 4 steps.Pu
Iowa State - COMS - 541
CS 541 quiz on functions as first class values* quiz (just for fun, not graded)Do one of the first two, and then some of the othersif you finish early* What is the the result of the following expression?let val m = (fn (x,y) =&gt; (fn f =&gt; f(x,y); va
Iowa State - COMS - 541
from ftp.cis.upenn.edumiller/iclp91.dvi.Z @InProceedings(miller91iclp, Author=&quot;Dale Miller&quot;, Title=&quot;Unification of Simply Typed Lambda-Terms as Logic Programming&quot;, Editors = &quot;Koichi Furukawa&quot;, Booktitle=&quot;Eighth International Logic Programming Confe
Iowa State - COMS - 541
CS 541 * quiz on the untyped lambda calculus-1. Give fully parenthesized forms for the following lambda-terms. (Note that the backslash (\) is meant to represent lambda:(a) \x.x y z(b) x y \x. x y(c) x y (z w)2. What are the free variables of t
Iowa State - COMS - 541
Com S 541 Lecture -*- Outline -*-* team work (can omit) * motivation-COOPERATIVE LEARNING BENEFITS+ active learning+ academic achievement+ higher-level thinking skills+ attitudes, motivation+ teamwork, interpersonal skills+ communication skills
Iowa State - COMS - 541
CS 541 Lecture -*- Outline -*-* Structural operational semantics* two styles-STYLES OF STRUCTURAL OPERATIONAL SEMANTICS names better forbig step, reasoning about programevaluation,naturallittle step compilers, concurrencycomputationTTS-* eval
Iowa State - COMS - 541
Com S 541 - Programming Languages IJanuary 31, 1993HOMEWORK 3: What do you want to learn?Due: February 5, 1993You have been hired by this class (Com S 541), Bamshad, and Garyto consult with them about what should be studied during the restof this c
Iowa State - COMS - 541
Com S 541 - Programming Languages IJanuary 27, 1993HOMEWORK 2: Programming Languages and Comp. Sci. ResearchDue: February 1, 1993You have been recommended by the owners of the company to thefaculty search committee of a prominent Midwest University
Iowa State - COMS - 541
Com S 541 - Programming Languages IJanuary 20, 1993HOMEWORK 1: The Economic Impact of Programming LanguagesDue: January 22, 1993The owners of the same company liked your previous work, and have hiredyou again! But being hard-nosed business people, t
Iowa State - COMS - 541
CS 541 Lecture -*- Outline -*-* Specifying distributed systemsA programming method for distributed systems, based on the paperLiskov and Weihl, `Specification of Distributed Programs',Distributed Computing Vol. 1, pages 102-108, 1986.* the problem
Iowa State - COMS - 541
CS 541 Lecture -*-Outline-*-* Bindings (Ch. 4)- allow &quot;value implementation independence&quot;- abbreviation* Bindings and Environments (4.1)Environments can also be interpreted as functions; the same &quot;set of bindings&quot; is looked at as in the other wa
Iowa State - COMS - 541
CS 541 Lecture -*- Outline -*-* FP systems (may omit)John Backus's langauge, from his turing award lecturein contrast to systems based on lambda calculus,no way to make new combining forms(i.e. can only name compositions of built-in things)* FP
Iowa State - COMS - 541
CS 541 Lecture -*- Outline -*-* Input/Output in functional languagesreferences: Hudak's computing surveys paper (ACM CS, Vol 21, Num 3, Sept. 1989, pages 359-411) Wadler's comupting surevys paper (ACM CS, Vol 29, Num 2, Sept. 1997, pages 240-263)*
University of Hawaii - Hilo - ETEC - 698
Addressing Issues of Social Justice with TechnologyMike Menchaca, Ed.D. mikepm@hawaii.edu Tracie Ortiz (A-M) tracier@hawaii.edu Alex Parisky (N-Z) parisky@hawaii.eduMenchaca, Ortiz 2009OverviewFuturism vs. Reality Diverse Learners Political ActionFut
University of Hawaii - Hilo - ETEC - 698
Addressing Issues of Social Justice with TechnologyMike Menchaca, Ed.D. mikepm@hawaii.edu Tracie Ortiz (A-M) tracier@hawaii.edu Alex Parisky (N-Z) parisky@hawaii.eduMenchaca 2009Overview Instructorintroduction TA introductions Student introductions D
Boise State - CS - 354
Chapter 8StatementLevel Control Structures Sections 14Levels of Control Flow Within expressions (Chapter 7) Among program units function calls controlled by precedence and associativity Among program statements Selection Repetition Unconditional bra
Penn State - PHYS - 212
Physics Pre-lab 212P-5 Template Resistance and Ohm's Law Name:_ Section:_Date:_Pre-lab Questions:These prelab questions require you to carry out some simple experiments. It may be convenient to enlist the help of a friend for an extra pair of hands. Q1
Boise State - CS - 354
COMPSCI 354 Final Exam (5/10/07)Time: 120 minutes Name : This exam has 14 questions, for a total of 205 points.Question 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Total:Points 25 15 15 10 10 15 10 10 10 10 15 20 20 20 205Score1. (25 points) Scheme Lists. a. W