1 / 71

BIL106 E Introduction to Scientific & Engineering Computing

BIL106 E Introduction to Scientific & Engineering Computing. Hüseyin TOROS , Ph.D. Istanbul Technical University Faculty of Aeronautics and Astronautics Dept. of Meteorological Engineering Voice: 285 31 27 E-mail: toros @itu.edu.tr http:// atlas.cc. itu.edu.tr/~ toros

Download Presentation

BIL106 E Introduction to Scientific & Engineering Computing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BIL106E Introduction to Scientific & Engineering Computing Hüseyin TOROS, Ph.D. Istanbul Technical University Faculty of Aeronautics and Astronautics Dept. of Meteorological Engineering Voice: 285 31 27 E-mail: toros@itu.edu.tr http://atlas.cc.itu.edu.tr/~toros An important fraction of our interaction will be via e-mail Useful Pages: http://www.be.itu.edu.tr/ http://atlas.cc.itu.edu.tr/~toros/bil106e.htm http://atlas.cc.itu.edu.tr/~F90/mainindex.html http://www.fortran.com/ http://www.foldoc.org (Free OnLine Dictionary of Computing) F Compiler: Read this first, Full installer (3.4Mb): win95nt.exe For more information syllabus_F 1 07/26/09 Introduction toScientific & Engineering Computing

  2. History of Computers The first computers were people! That is, electronic computers (and the earlier mechanical computers) were given this name because they performed the work that had previously been assigned to people. "Computer" was originally a job title: it was used to describe those human beings (predominantly women) whose job it was to perform the repetitive calculations required to compute such things as navigational tables, tide charts, and planetary positions for astronomical almanacs. Imagine you had a job where hour after hour, day after day, you were to do nothing but compute multiplications. Boredom would quickly set in, leading to carelessness, leading to mistakes. And even on your best days you wouldn't be producing answers very fast. Therefore, inventors have been searching for hundreds of years for a way to mechanize (that is, find a mechanism that can perform) this task. 2 07/26/09 Introduction to Scientific & Engineering Computing

  3. The abacus was an early aid for mathematical computations. Its only value is that it aids the memory of the human performing the calculation. A skilled abacus operator can work on addition and subtraction problems at the speed of a person equipped with a hand calculator (multiplication and division are slower). The abacus is often wrongly attributed to China. In fact, the oldest surviving abacus was used in 300 B.C. by the Babylonians. 3 07/26/09 Introduction to Scientific & Engineering Computing

  4. ELECTRONİC NUMERİCAL INTEGRATOR AND COMPUTER • 1st large scale electronic digital computer • designed and constructed at the Moore School of Electrical Engineering of the University of Pennsylvania • since 1920s, faculty had worked with Aberdeen Proving Ground’s Ballistics Research Laboratory (BRL) 4 07/26/09 Introduction to Scientific & Engineering Computing

  5. INSPİRATİON AND PERSPİRATİON UNİTE • 1943 Mauchly and Eckert prepare a proposal for the US Army to build an Electronic Numerical Integrator • calculate a trajectory in 1 second • May 31, 1943 Construction of ENIAC starts • 1944 early thoughts on stored program computers by members of the ENIAC team • July 1944 two accumulators working 5 07/26/09 Introduction to Scientific & Engineering Computing

  6. ACCUMULATOR(28 VACUUM TUBES) 6 07/26/09 Introduction to Scientific & Engineering Computing

  7. ENIAC AT MOORE SCHOOL, UNİVERSİTY OF PENNSYLVANİA 7 07/26/09 Introduction to Scientific & Engineering Computing

  8. 8 07/26/09 Introduction to Scientific & Engineering Computing

  9. EARLY THOUGHTS ABOUTSTORED PROGRAM COMPUTİNG • January 1944 Moore School team thinks of better ways to do things; leverages delay line memories from War research • September 1944 John von Neumann visits • Goldstine’s meeting at Aberdeen Train Station • October 1944 Army extends the ENIAC contract to include research on the EDVAC and the stored-program concept • Spring 1945 ENIAC working well • June 1945First Draft of a Report on the EDVAC: Electronic Discrete Variable Automatic Computer 9 07/26/09 Introduction to Scientific & Engineering Computing

  10. MANCHESTER MARK I (1948)

  11. MANCHESTER MARK I (1948) • Freddy Williams and Tom Kilburn • Developed an electrostatic memory • Prototype operational June 21, 1948 and machine to execute a stored program • Memory: 32 words of 32 bits each • Storage: single Williams tube (CRT) • Fully operational: October 1949 • Ferranti Mark I delivered in February 1951 11 07/26/09 Introduction to Scientific & Engineering Computing

  12. EDSAC • Maurice Wilkes, University Mathematical Laboratory, Cambridge University • Moore School Lectures • Electronic Delay Storage Automatic Calculator, EDSAC operationalMay, 1949 • J. Lyons Company and the LEO, Lyons Electronic Office, operational fall 1951 12 07/26/09 Introduction to Scientific & Engineering Computing

  13. NATİONAL PHYSİCAL LABORATORY • Alan Turing • Automatic Computing Engine (ACE) • Basic design by spring, 1946 • Harry Huskey joins project • Pilot ACE working, May 10, 1950 • English Electric: DEUCE, 1954 • Full version of ACE at NPL, 1959 14 07/26/09 Introduction to Scientific & Engineering Computing

  14. MAİNFRAME COMPUTERS 16 07/26/09 Introduction to Scientific & Engineering Computing

  15. REMİNGTON RAND UNIVAC • 43 UNIVACs were delivered to government and industry • Memory: mercury delay lines: 1000 words of 12 alphanumeric characters • Secondary storage: metal oxide tape • Access time: 222 microseconds (average) • Instruction set: 45 operation codes • Accumulators: 4 • Clock: 2.25 Mhz 17 07/26/09 Introduction to Scientific & Engineering Computing

  16. 1951UNİVAC Typical 1968 prices—EX-cluding maintenance & support!

  17. IBM 701 (DEFENSE CALCULATOR) • Addition time: 60 microseconds • Multiplication: 456 microseconds • Memory: 2048 (36 bit) words using Williams tubes • Secondary memory: • Magnetic drum: 8192 words • Magnetic tape: plastic • Delivered: December 1952: IBM World Headquarters (total of 19 installed) 19 07/26/09 Introduction to Scientific & Engineering Computing

  18. SECOND GENERATİON (1958-1964) • 1958 Philco introduces TRANSAC S-2000 • first transistorized commercial machine • IBM 7070, 7074 (1960), 7072(1961) • 1959 IBM 7090, 7040 (1961), 7094 (1962) • 1959 IBM 1401, 1410 (1960), 1440 (1962) • FORTRAN, ALGOL, and COBOL are first standardized programming languages 20 07/26/09 Introduction to Scientific & Engineering Computing

  19. THİRD GENERATİON (1964-1971) • April 1964 IBM announces the System/360 • solid logic technology (integrated circuits) • family of “compatible” computers • 1964 Control Data delivers the CDC 6600 • nanoseconds • telecommunications • BASIC, Beginners All-purpose Symbolic Instruction Code 21 07/26/09 Introduction to Scientific & Engineering Computing

  20. FOURTH GENERATİON (1971- ) • Large scale integrated circuits (MSI, LSI) • Nanoseconds and picoseconds • Databases (large) • Structured languages (Pascal) • Structured techniques • Business packages 22 07/26/09 Introduction to Scientific & Engineering Computing

  21. DİGİTAL EQUİPMENT CORPORATİON(MİNİ-COMPUTERS)ASSABET MİLLS, MAYNARD, MA 23

  22. FLİPCHİP 24

  23. PDP-8, FİRST MASS-PRODUCED MİNİ 25

  24. PDP-11 (1970) 26

  25. INTEL MİCROCOMPUTERS • Noyce, Moore, and Andrew Grove leave Fairchild and found Intel in 1968 • focus on random access memory (RAM) chips • Question: if you can put transistors, capacitors, etc. on a chip, why couldn’t you put a central processor on a chip? • Ted Hoff designs the Intel 4004, the first microprocessor in 1969 • based on Digital’s PDP-8 27 07/26/09 Introduction to Scientific & Engineering Computing

  26. MİCROCOMPUTERS • Ed Roberts founds Micro Instrumentation Telemetry Systems (MITS) in 1968 • Popular Electronics puts the MITS Altair on the cover in January 1975 [Intel 8080] • Les Solomon’s 12 year old daughter, Lauren, was a lover of Star Trek. He asked her what the name of the computer on the Enterprise was. She said “ ‘computer’ but why don’t you call it Altair because that is where they are going tonight!” 28 07/26/09 Introduction to Scientific & Engineering Computing

  27. ALTAİR 8800 COMPUTER 29

  28. INTEL PROCESSORS 30 07/26/09 Introduction to Scientific & Engineering Computing

  29. Computer Processing Speed • Computer processing speed depends on a variety of factors. Three of the most important factors are: • Word length (the number of bits that can be processed at one time by the microprocessor) • Cycle Speed (how fast individual events are processed, measured in Megahertz) • Data Bus Width (determines how much data can be transferred between the CPU and memory) • Other factors Include: • RAM (amount of available random access memory) • Disk Access Speed (speed that data can be read from hard disk) • Code Efficiency (how efficiently the computer code has been designed) 31 07/26/09 Introduction to Scientific & Engineering Computing

  30. İnput Processing Output storage. What is a computer? • The computer is anautomatic device that • performs calculations • makes decisions • hascapacity for storing • instantly recalling vastamount of information 32 32 07/26/09 Introduction toScientific & Engineering Computing

  31. What is a computer System? Software Hardware • Computer system – A collection of related components that are designed to work together. • A system includes hardware and software. 33 33 07/26/09 Introduction toScientific & Engineering Computing

  32. What is a computer? • Hardware • Processor • Memory • I/O units (Input/Output Units) 34 07/26/09 Introduction to Scientific & Engineering Computing

  33. How does a computer work? • Executes very simple instructions. • Executes them incredibly fast. • Must be programmed: it is the software, i.e., the programs, that characterize what a computer actually does. 35 07/26/09 Introduction to Scientific & Engineering Computing

  34. Computer Structure CPU = Central Processing Unit Input Devices Control Unit Arithmetic- Logic Unit Output Devices Main Memory External Memory Major Components of a computing system 36 07/26/09 Introduction toScientific & Engineering Computing

  35. Computer Structure Registers are a set of special high-speed memory locations within the CPU Access speed within the register is thousands of times faster than access speed in RAM MEMORY MEASUREMENT The memory unit of a computer is two-state devices. Then it is natural to use a binary scheme (using only the two binary digits {bits} 0 and 1 to represent information in a computer). Bytes = 8 Bits Memory is commonly measured in bytes, and a block of 210 = 1024 bytes = 1 K 1MB=1024 K=1024 . 210 = 210 . 210 = 220 = 1,048,576 bytes. or 220 . 23 = 223 = 8,384,608 bits. 37 07/26/09 Introduction toScientific & Engineering Computing

  36. What is a computer program? • The computer program characterizes what a computer actually does. • A program (independently of the language in which it is written) is constituted by two fundamental parts: • A representation of the information (data) relative to the domain of interest. • A description of how to manipulate the representation in such a way as to realize the desired functionality: operations. • To write a program both aspects have to be addressed. 38 07/26/09 Introduction to Scientific & Engineering Computing

  37. Program A list of instructions that are grouped together to accomplish a task or tasks. The instructions, called machine code or assembly code consist of things like reading and writing memory, arithmetic operations, and comparisons. 39 39 07/26/09 Introduction toScientific & Engineering Computing

  38. Program • Every program must be translated into a machine language that the computer can understand. • This translation is performed by compilers, interpreters, and assemblers. • When you buy software, you normally buy an executable version of a program. • This means that the program is already in machine language -- it has already been compiled and assembled and is ready to execute. 40 07/26/09 Introduction toScientific & Engineering Computing

  39. 41 07/26/09 Introduction to Scientific & Engineering Computing

  40. Program • While easily understood by computers, machine languages are almost impossible for humans to use because they consist entirely of numbers. • Programmers, therefore, use either a high-level programming language or an assembly language. An assembly language contains the same instructions as a machine language, but the instructions and variables have names instead of being just numbers. • Programs written in high-level languages are translated into assembly language or machine language by a compiler. Assembly language programs are translated into machine language by a program called an assembler. • Every CPU has its own unique machine language. Programs must be rewritten or recompiled, therefore, to run on different types of computers. 42 07/26/09 Introduction to Scientific & Engineering Computing

  41. Compiler A program that translates source code into object code. The compiler derives its name from the way it works, looking at the entire piece of source code and collecting and reorganizing the instructions. Thus, a compiler differs from an interpreter, which analyzes and executes each line of source code in succession, without looking at the entire program. The advantage of interpreters is that they can execute a program immediately. Compilers require some time before an executable program emerges. However, programs produced by compilers run much faster than the same programs executed by an interpreter. 43 07/26/09 Introduction to Scientific & Engineering Computing

  42. Source Program (High-level language)‏ Compiler Object Program (machine language)‏ Run-timeerrors Compilationerrors Steps of execution of a Fortran program Compiler Every high-level programming language (except strictly interpretive languages) comes with a compiler. In effect, the compiler is the language, because it defines which instructions are acceptable. Because compilers translate source code into object code, which is unique for each type of computer, many compilers are available for the same language. For example, there is a FORTRAN compiler for PCs and another for Apple Macintosh computers. In addition, the compiler industry is quite competitive, so there are actually many compilers for each language on each type of computer. More than a dozen companies develop and sell C compilers for the PC. 44 07/26/09 Introduction to Scientific & Engineering Computing

  43. Interpreter • A program that executesinstructions written in a high-level language. There are two ways to run programs written in a high-level language. The most common is to compile the program; the other method is to pass the program through an interpreter. • An interpreter translates high-level instructions into an intermediate form, which it then executes. In contrast, a compiler translates high-level instructions directly into machine language. Compiled programs generally run faster than interpreted programs. The advantage of an interpreter, however, is that it does not need to go through the compilation stage during which machine instructions are generated. This process can be time-consuming if the program is long. The interpreter, on the other hand, can immediately execute high-level programs. For this reason, interpreters are sometimes used during the development of a program, when a programmer wants to add small sections at a time and test them quickly. In addition, interpreters are often used in education because they allow students to program interactively. • Both interpreters and compilers are available for most high-level languages. However, BASIC and LISP are especially designed to be executed by an interpreter. In addition, page description languages, such as PostScript, use an interpreter. Every PostScript printer, for example, has a built-in interpreter that executes PostScript instructions. 45 07/26/09 Introduction to Scientific & Engineering Computing

  44. Programing Language A programming language that is once removed from a computer'smachine language. Machine languages consist entirely of numbers and are almost impossible for humans to read and write. Assembly languages have the same structure and set of commands as machine languages, but they enable a programmer to use names instead of numbers. Each type of CPU has its own machine language and assembly language, so an assembly language program written for one type of CPU won't run on another. In the early days of programming, all programs were written in assembly language. Now, most programs are written in a high-level language such as FORTRAN or C. Programmers still use assembly language when speed is essential or when they need to perform an operation that isn't possible in a high-level language. 46 07/26/09 Introduction toScientific & Engineering Computing

  45. Why we use a programming language ? • The main reason for learning aprogramming language is to usethe computer to solve • scientific • engineering problems 47 07/26/09 Introduction to Scientific & Engineering Computing

  46. Introduction toScientific & Engineering Computing • Taught in three versions: • Fortran (F) • C • Matlab 48 07/26/09 Introduction toScientific & Engineering Computing

  47. Programming language • Basic skills for scientific/engineering problem solving using computers: • Data structures and algorithms • Programming skills in a (standard) language • Skills for integrating the computing chain:????????????????? • Analyze  Program  Run  Visualize 49 07/26/09 Introduction toScientific & Engineering Computing

  48. Engineering simulation of thenatural/artificial systems • Build a conceptual  quantitative model (most of the time, write down the appropriate equations)‏ • Formulate a solution to these equations using numerical methods • Data structures + algorithms • Program these data structures and algorithms in a language • Run the program and analyze its output using visualization techniques 50 07/26/09 Introduction toScientific & Engineering Computing

More Related