Unformatted text preview:

CSCI 8150 Advanced Computer ArchitectureThe State of ComputingComputing GenerationsFirst Generation (1945 to 1954)Second Generation (1955 to 1964)Third Generation (1965 to 1974)Fourth Generation (1975 to 1990)Fifth Generation (1990 to present)Elements of Modern ComputersComputing ProblemsAlgorithms and Data StructuresHardware ResourcesOperating SystemSystem Software SupportSlide 15Compiler SupportEvolution of Computer ArchitectureSlide 18Flynn’s Classification (1972)Parallel/Vector ComputersPipelined Vector ProcessorsSIMD ComputersDevelopment Layers (Ni, 1990)System Attributes to PerformancePerformance IndicatorsClock Rate and CPIAverage CPIPerformance Factors (1)Performance Factors (2)System AttributesMIPS RateSlide 32Throughput RateExample 1. VAX/780 and IBM RS/6000Programming EnvironmentsImplicit ParallelismExplicit ParallelismNeeded Software ToolsCSCI 8150Advanced Computer ArchitectureHwang, Chapter 1Parallel Computer Models1.1 The State of ComputingThe State of ComputingEarly computing was entirely mechanical:abacus (about 500 BC)mechanical adder/subtracter (Pascal, 1642)difference engine design (Babbage, 1827)binary mechanical computer (Zuse, 1941)electromechanical decimal machine (Aiken, 1944)Mechanical and electromechanical machines have limited speed and reliability because of the many moving parts. Modern machines use electronics for most information transmission.Computing GenerationsComputing is normally thought of as being divided into generations.Each successive generation is marked by sharp changes in hardware and software technologies.With some exceptions, most of the advances introduced in one generation are carried through to later generations.We are currently in the fifth generation.First Generation (1945 to 1954)Technology and ArchitectureVacuum tubes and relay memoriesCPU driven by a program counter (PC) and accumulatorMachines had only fixed-point arithmeticSoftware and ApplicationsMachine and assembly languageSingle user at a timeNo subroutine linkage mechanismsProgrammed I/O required continuous use of CPURepresentative systems: ENIAC, Princeton IAS, IBM 701Second Generation (1955 to 1964)Technology and ArchitectureDiscrete transistors and core memoriesI/O processors, multiplexed memory accessFloating-point arithmetic availableRegister Transfer Language (RTL) developedSoftware and ApplicationsHigh-level languages (HLL): FORTRAN, COBOL, ALGOL with compilers and subroutine librariesStill mostly single user at a time, but in batch modeRepresentative systems: CDC 1604, UNIVAC LARC, IBM 7090Third Generation (1965 to 1974)Technology and ArchitectureIntegrated circuits (SSI/MSI)MicroprogrammingPipelining, cache memories, lookahead processingSoftware and ApplicationsMultiprogramming and time-sharing operating systemsMulti-user applicationsRepresentative systems: IBM 360/370, CDC 6600, TI ASC, DEC PDP-8Fourth Generation (1975 to 1990)Technology and ArchitectureLSI/VLSI circuits, semiconductor memoryMultiprocessors, vector supercomputers, multicomputersShared or distributed memoryVector processorsSoftware and ApplicationsMultprocessor operating systems, languages, compilers, and parallel software toolsRepresentative systems: VAX 9000, Cray X-MP, IBM 3090, BBN TC2000Fifth Generation (1990 to present)Technology and ArchitectureULSI/VHSIC processors, memory, and switchesHigh-density packagingScalable architectureVector processorsSoftware and ApplicationsMassively parallel processingGrand challenge applicationsHeterogenous processingRepresentative systems: Fujitsu VPP500, Cray MPP, TMC CM-5, Intel ParagonElements of Modern ComputersThe hardware, software, and programming elements of modern computer systems can be characterized by looking at a variety of factors, including:Computing problemsAlgorithms and data structuresHardware resourcesOperating systemsSystem software supportCompiler supportComputing ProblemsNumerical computingcomplex mathematical formulationstedious integer or floating-point computationTransaction processingaccurate transactionslarge database managementinformation retrievalLogical Reasoninglogic inferencessymbolic manipulationsAlgorithms and Data StructuresTraditional algorithms and data structures are designed for sequential machines.New, specialized algorithms and data structures are needed to exploit the capabilities of parallel architectures.These often require interdisciplinary interactions among theoreticians, experimentalists, and programmers.Hardware ResourcesThe architecture of a system is shaped only partly by the hardware resources.The operating system and applications also significantly influence the overall architecture.Not only must the processor and memory architectures be considered, but also the architecture of the device interfaces (which often include their advanced processors).Operating SystemOperating systems manage the allocation and deallocation of resources during user program execution.UNIX, Mach, and OSF/1 provide support formultiprocessors and multicomputersmultithreaded kernel functionsvirtual memory managementfile subsystemsnetwork communication servicesAn OS plays a significant role in mapping hardware resources to algorithmic and data structures.System Software SupportCompilers, assemblers, and loaders are traditional tools for developing programs in high-level languages. With the operating system, these tools determine the bind of resources to applications, and the effectiveness of this determines the efficiency of hardware utilization and the system’s programmability.Most programmers still employ a sequential mind set, abetted by a lack of popular parallel software support.System Software SupportParallel software can be developed using entirely new languages designed specifically with parallel support as its goal, or by using extensions to existing sequential languages.New languages have obvious advantages (like new constructs specifically for parallelism), but require additional programmer education and system software.The most common approach is to extend an existing language.Compiler SupportPreprocessorsuse existing sequential compilers and specialized libraries to implement parallel constructsPrecompilersperform some program flow analysis, dependence checking, and limited parallel optimzationsParallelizing Compilersrequires full detection of parallelism in source code, and transformation of sequential code into parallel constructsCompiler directives are often inserted into source code to aid compiler


View Full Document

UNO CSCI 8150 - Parallel Computer Models

Download Parallel Computer Models
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Parallel Computer Models and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Parallel Computer Models 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?