Parallel Computing Prehistory

Similar documents
Part (01) Introduction to Computer

Welcome to COS151! 1.1

Computers in Engineering COMP 208. A Brief History. Mechanical Calculators. A Historic Perspective Michael A. Hawker

Computers in Engineering COMP 208

Early Calculating Tools

1: History, Generation & Classification. Shobhanjana Kalita, Dept. of CSE, Tezpur University

History of Computing. Slides from NYU and Georgia Tech

CHAPTER1 : Part 2 INTRODUCTION & HISTORY OF COMPUTERS. UNIVERSITI TENAGA NASIONAL Generates Professionals

Chronological History of the Pre-Computer Developments

The History of Computers

Introduction to Computer Science. What is Computer Science?

Great Inventions written by Bob Barton

History of Modern Computing Lesson 1

Let s begin with the very beginning...

CHAPTER 1 Introduction

The Generations of Computers

Computer History CSCE 101

Fundamentals of Python: First Programs. Chapter 1: Introduction Modifications by Mr. Dave Clausen

COMP 102: Computers and Computing Lecture 1: Introduction!

A Brief History of Computer Science. David Greenstein Monta Vista High School, Cupertino, CA

4. History of computers and applications

HISTORY OF COMPUTERS HISTORY OF COMPUTERS. Mesleki İngilizce - Technical English. Punch Card. Digital Data. II Prof. Dr. Nizamettin AYDIN.

Processor: Faster and Faster

1-1 Computer Structure

Chapter 1: Introduction to Computers

Babbage Analytical Machine

Learning Objectives. In this chapter you will learn about:

Chapter 1: Introduction to Computers. In this chapter you will learn about:

Corso di Biblioteche Digitali

I1100 Introduction to Computer Science Semester: 1 Academic Year: 2018/2019 Credits: 3 (30 hours) Dr. Antoun Yaacoub

Computer System architectures

Chapter 1. The Big Picture

Welcome to COSC Introduction to Computer Science

Chapter 1 History & Hardware

Overview of a computer

Chapter 1 Basic Computer Organization

Algorithm: Program: Programming: Software: Hardware:

HIGHER SECONDARY FIRST YEAR 2 MARK & 5 MARK NOTES CHAPTER 1 1. INTRODUCTION TO COMPUTER

ENIAC: The first electronic computer

CHAPTER 1 Introduction

Computer Evolution. Budditha Hettige. Department of Computer Science

Computer Systems. Hardware, Software and Layers of Abstraction

Computer Evolution. Computer Generation. The Zero Generation (3) Charles Babbage. First Generation- Time Line

Von Neumann architecture. The first computers used a single fixed program (like a numeric calculator).

Chapter 1: An Introduction to Computer Science. Invitation to Computer Science, C++ Version, 6-th Edition

Mechanization. A little bit of history. Mechanization. The old dream of mechanical computing. Jordi Cortadella Department of Computer Science

COMS 1003 Fall Introduction to Computer Programming in C. History & Computer Organization. September 15 th

A little bit of history. Jordi Cortadella Department of Computer Science

INFS 214: Introduction to Computing

ENIAC - background. ENIAC - details. Structure of von Nuemann machine. von Neumann/Turing Computer Architecture

what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 2 Computer Evolution and Performance

1.2.1 Electronic computers based on digital switching

HST250 (section 740) Exam #1 Wednesday, February 10, 2010

HISTORY OF CALCULATION. Evolution of Computation

Introduction to Computer Systems and Operating Systems

In this chapter, you will learn about: The definition of computer science. Algorithms. Invitation to Computer Science, C++ Version, Third Edition

Copyright 2012 Pearson Education, Inc. Publishing as Prentice Hall

An Introduction to Computer Science CS 8: Introduction to Computer Science Lecture #2

You Will Need Floppy Disks for your labs!

Chapter One. Introduction to Computer System. Definition Objectives Types according to their size Internet

Evolution of the Computer

Computer Organization CS 206T

CSC101 Furman University Professor Batchelor

Chapter 2. Perkembangan Komputer

SSRVM Content Creation Template

Parallelism and Concurrency. COS 326 David Walker Princeton University

An Incomplete History of Computation

Describe the layers of a computer system

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.

Monday, January 27, 2014

Computer & Microprocessor Architecture HCA103

Chapter 2 HISTORICAL DEVELOPMENT OF COMPUTERS

Chapter 5 12/2/2013. Objectives. Computer Systems Organization. Objectives. Objectives (continued) Introduction. INVITATION TO Computer Science 1

Part 1: Computer and Information Literacy

Figure 1-1. A multilevel machine.

A Brief History of Computer Science

John Vincent Atanasoff The father of the computer (October 4, June 15, 1995)

Chapter 1 : Introduction

Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015

Introductory Visualizing Technology

Note: Though solved with care, not responsible for the accuracy.

CS 1 Notes 1 - Early Computing and 2 - Electronic Computing

Fundamentals of Digital Computers The mechanical computer age began with the advent of the abacus in 500 B.C by Babylonians. The abacus, which was

Introduction To Computers. About the Course

Wednesday, January 28, 2018

Ms. Minerva A. Lagarde

An Introduction to Computer Science CS 8: Introduction to Computer Science, Winter 2018 Lecture #2

6.823 Computer System Architecture

The Modern Computer. Exploring Computer Science

History. 3rd Generation- Integrated Circuits, Transistors (Integrated Circuit form) for Memory ( memory is now volatile), Terminal/Keyboard for I/O

o MAC (6/18 or 33%) o WIN (17/18 or 94%) o Unix (0/18 or 0%)

MATLAB Parallel Computing

Licensed to: ichapters User

Computer Architecture Review. ICS332 - Spring 2016 Operating Systems

2. Computer Evolution and Performance

COMPUTERIZED OFFICE MANAGEMENT

Basic definitions and history of the Computer Systems

Unit 4: Emerging Technologies. A History of Personal Computing by Mrs. Ogletree

A (BRIEF) HISTORY OF COMPUTING. By Dane Paschal

Transcription:

John Information Technology Department Virginia Tech... FDI Summer Track V: Using Virginia Tech High Performance Computing http://people.sc.fsu.edu/ jburkardt/presentations/fdi 2009 history.pdf 26-28 May 2009

How Did We Get Here? [date uncertain] I don t know where I am, but I m making record time! Last transmission from a Navy pilot, somewhere in the Pacific...

What Happens if You Don t Know Where You Are In 1707, Admiral Sir Cloudesly Shovell sank his fleet by sailing directly into the Scilly Islands, which weren t where he thought they were...because he didn t know where he was.

Fine Clockwork Can Tell You Where You Are The British Admiralty put out an RFP, seeking a reliable means of determining longitude. John Harrison s superclock solved the problem...though of course he had much trouble getting reimbursed!

Babbage Shows Calculation is Like Clockwork The Navy still had plenty of navigational problems in the 19th century, and (partially) funded Charles Babbage s Difference Engine and his Analytical Engine.

Hollerith Automates Data Processing Hermann Hollerith, inspired by an automatic weaving device, developed a machine to tabulate the 1890 census - later a big seller for the International Business Machine Corporation, aka IBM.

Numerical Calculations Were Done by Computers Computing was done by computers, that is, people. This is the computer lab for the Harvard Astronomical Observatory in 1890.

Richardson Forecasts the Weather Lewis Richardson attempted the first weather forecast in 1917. (It was for 20 May 1910; it was wrong.)

The Atanasoff Computer John Atanasoff, of Iowa State University, took a midnight drive to the Mississippi and worked out the final details for the ABC machine. It could only solve linear systems, up to order 29, by entering two equations at a time by hand, and eliminating one variable and outputing the revised pair of equations. As the result of a lawsuit settled in 1973, the ABC machine was declared the first working computer. (Though it never worked)

The Atanasoff Computer The Atanasoff-Berry Computer or ABC

The COLOSSUS Computer Early computers were hardwired for very specific tasks and could not be reprogrammed. The Colossus computer, built in World War II, read a paper tape punched with a ciphered message, and compared it to another tape containing output from a cipher machine, looking for matches. (As the tapes were spun back and forth, they tended to stretch, causing errors and delays!)

The COLOSSUS Computer The Colossus Computer, with which Alan Turing was associated.

The Password was SLOW Everything about early computers was so slow that there was no obvious reason to speed anything up. The data was punched onto cards or paper tape, and read, one at a time, as needed. The program might be literally hardwired (the computer could do one thing.) More advanced computers might have plugs (like old telephone switches) that allowed the operator to modify the computation. Everything was so slow that there were no obvious inefficiencies!

ENIAC Arrives World War II showed the power of computing. ENIAC was the first general purpose electronic computer. Initially intended to compute artillery firing tables, it could be reprogrammed to solve a wide range of mathematical problems. ENIAC could do about 5000 additions or 400 multiplications per second.

ENIAC Could Store Data Internally ENIAC could store 20 numbers of 10 decimal digits. Each decimal digit was stored as a voltage level in a vacuum tube and the set of tubes was known as an accumulator. One number could be added to another by rearranging plugs on a board; this caused the voltage levels in one set of vacuum tubes to be sent to the other, in such a way that the corresponding digits were incremented. Since each accumulator essentially could perform arithmetic independently of the others, it is sometimes claimed that this was a beginning of parallel processing!

ENIAC Weighed 30 Tons

Some Parts of ENIAC Were Not Slow Enough The ENIAC processor was so fast that most of the time it was doing nothing, while waiting for new instructions. The computer s designers realized that the computer would be even faster if the program itself was also stored in memory, along with the data. EDVAC, the second version of the machine, was one of the first stored program computers. It also, thank goodness, switched to binary arithmetic! Here was an early example where speeding up one part of a computer meant changes in other parts.

ENIAC inspires the von Neumann Architecture ENIAC was actually useful (!) so it required a user manual. Princeton mathematician John von Neumann studied the machine and wrote up instructions and a description, now known as the von Neumann architecture. The main feature was the division of the computer into main memory and the central processing unit or CPU. A controller unit fetched data and instructions from memory.

The von Neumann Architecture

The von Neumannn Architecture The von Neumann architecture is the standard model of a computer. New advances required adjusting these blueprints. Memories got enormous, so it took more time to find data. Processors got faster, so they needed data faster. Result: the von Neumann bottleneck

The von Neumann Bottleneck Faster CPU s + huge memories => starvation. The von Neumann bottleneck showed that there was a third important problem in computation: memory processing power communication!

Supercomputers The power of computers created an insatiable demand for bigger and faster computations. With unlimited money available, very fast (and very expensive) new hardware was developed. Supercomputers in the late 70s and 80s were able to achieve faster computation by faster communication: increasing the connections between memory and CPU using faster connections moving the data closer to the memory

Supercomputers - Vectorization Supercomputers also began to find new ways to improve performance by dealing with the von Neumann bottleneck. When a computation involved carrying out the same operations on many elements of a vector, the computer could achieve far greater speeds than seemed possible. the CPU had two input connections to memory, and one output, all of which could be operating independently the CPU included several functional units, which could all do useful work independently (computing addresses, doing arithmetic the arithmetic functional units had a sort of internal assembly line ; even though an arithmetic operation might take 5 or 6 clock cycles, the unit could produce a new result every clock cycle.

Light Speed Not Fast Enough As processor clock cycles speeded up, an interesting problem was discovered: c = speed of light = 186,282 miles / second = 983,568,960 feet / second = 983,568 feet / millisecond (1 kilohz) = 983 feet / microsecond (1 megahz) = 0.983 feet / nanosecond (1 GigaHz)

Light Goes 1000 Feet A MicroSecond Grace Hopper illustrates how far light can go in a microsecond. She handed out rulers for nanoseconds, and packets of pepper for picoseconds!

Light Goes 1000 Feet A MicroSecond Today s fast computer chips have clock cycles of about 4 GigaHertz. That means that in a single clock cycle, a beam of light can travel at most 3 inches (optimistic!). Faster clocks require chip components too small to manufacture, and more heat in smaller spaces. So the computer chips of tomorrow and the forseeable future will also have clock cycles of about 4 GigaHertz.

Powerful Chips + Crowded Memories = BIG HEAT Shrinking the memory and using superfast processors leads to a new computational problem: cooling!

Powerful Laptops Burn Up Too Supercomputers weren t the only victims of overheating. Laptop design meant that hot chips were crowded together.

Physics Calls a Timeout Two physics problems: the speed of light (processor-memory distance) heat transfer (tiny chips get too hot) Two software/hardware solutions: moderately fast communication between separate chips multiple processors on one chip

Distributed Memory Computing Instead of very fast, very expensive specialized architecture, try linking massive numbers of cheap processors. 1994: Cluster of 16 personal computers connected by Ethernet.

Distributed Memory Computing A cluster of 8 Playstation2 s or 32 Linux boxes could actually cooperate to solve certain problems. These problems tended to be embarassingly parallel perhaps many copies of the same program, each with a different subset of the data. The computation was only efficient if communication between computers was very low, as the communication links were quite inefficient.

Distributed Memory Computing - Communication Systems Results from these early distributed memory systems were so interesting that people began to figure out how to connect processors so they could communicate more quickly. Distributed memory computing became competitive. Communication networks include: EtherNet Infiniband Myrinet NUMAlink (SGI) QSnet

Distributed Memory Computing: Servers+Communication Orange cables connect servers to Myrinet switch.

Distributed Memory Computing - Communication Issues Communication Network Issues: bandwidth - how much can you send at one time? speed - how fast can you send it? latency - delay before message can be sent scalability - can same configuration be used for bigger systems?

Distributed Memory Computing - MPI Standard The MPI standard defines how a computation can be carried out on a distributed memory system. Each computer gets a copy of the same program. The program begins on all computers simultaneously; Each computer knows its own ID, and how many others there are. Computers are free to send results to each other.

Shared Memory Computing The second variation of the von Neumann architecture was to place multiple processors on a single chip. This kept the processors close to the memory, enabled chip designers to get more theoretical output using less power. Software issue: Who s in charge? Can cores cooperate on a task? How does the user talk to the chip? Each processor maintains a private cache of some of the common data. When a common data item is changed, what mechanism guarantees that cached copies are updated?

Shared Memory Computing A strong consistent push for multicore architecture began with the graphics and visualization groups, particularly at SGI. Rendering 2D graphics involved a simple repetitive sequence of operations, easily divided up among a set of stripped-down cores.

Shared Memory Computing The initial efforts showed that simple tasks could run twice as fast with two cores, four times as fast with four. And cores were getting cheaper. Soon 3D graphics could be handled in real time, and money from game companies was paying for more research. The graphical processor units (GPU), originally inflexible and highly specialized, were soon competitive with traditional architectures. The success of multicore chips in graphics programming showed a way for general purpose programming to develop.

Shared Memory Computing Manufacturers are rapidly developing multicore architecture. They are already designing processors with tens and hundreds of cores! Parallel programs that take advantage of this multicore architecture are called shared memory systems.

Shared Memory Computing - the OpenMP Standard The OpenMP interface is a shared memory standard. OpenMP allows users to write programs in C or Fortran that access the underlying parallel abilities of multicore chips. OpenMP standard emphasizes: ease of use (hide details from user) ability to convert programs one step at a time ability to run in sequential mode ability to adapt to any number of processors

Parallel MATLAB Computing Virginia Tech has always had a large and devoted group of MATLAB programmers. But MATLAB has not been available as a parallel programming language. Recently, the MathWorks has begun adding parallel features to MATLAB, making it possible to run on shared memory systems. A copy of this parallel MATLAB has been running on an experimental cluster at Virginia Tech. (We will have access to this cluster during the workshop). In June or July, Virginia Tech will install a substantial new cluster that will enable parallel MATLAB to run with up to 64 processors at a time.

That Was How We Got Here! This is Where We re Going! In this workshop, we will present some ideas on parallel programming, using parallel MATLAB, and the OpenMP and MPI interfaces. Some of what we do can be tested out as well on your laptop or desktop (particularly parallel MATLAB and OpenMP). To use MPI requires access to a cluster of computers such as System X. Access to both good software and good hardware is crucial for users of the supercomputing facilities offered by the VT Advanced Research Computing facility.

This is How We Got Here! This is Where We re Going! A satisfied user of Virginia Tech s System X.