Client-Sever Computing Client-Sever Computing – – – – – Sockets / RPC IP (internet protocols) (40) TCP (transmission control) (50) HTTP/FTP (40 ms) Others (web services, etc) http://jan.netcomp.monash.edu.au/ClientServer/old/socket.html Computational Science for NRM D. Wang Internet Based Computing Internet Based Services – – – – Static website design (html) Dynamic website Jscript/JavaApplet Database and other components CGI/JSP/ASP/ASP.net … Middleware – grid computing Computational Science for NRM D. Wang High Performance Computing A branch of computer science that concentrates on developing supercomputers and software to run on supercomputers. A main area of this discipline is developing parallel processing algorithms and software: programs that can be divided into little pieces so that each pieces can be executed simultaneously by separated processors www.webopedia.com/TERM/H/High_Performance_computing.html • Performance orientated hardware Low overhead / low latency (us) Specially designed message passing • Parallel algorithm Computational Science for NRM D. Wang High Performance Computing Amdahl’s Law (Maximum speedup) (Gene Amdahl IBM 1967) If S is the fraction of calculation that is serial and 1-S is the fraction that can be parallelized, then the greatest speedup that can be achieved using P processors is 1/(S +(1-S)/P) which has a limiting value of 1/S for an infinite number of processors. http://en.wikipedia.org/wiki/Amdahl's_law Gustafson’s Law (Scalable speedup) (John Gustafson, SNL 1988) It states that if the size of most problem is increased sufficiently, you can achieve any given efficiency by increase the amount of processors. http://www.scl.ameslab.gov/Publications/Gus/AmdahlsLaw/Amdahls.html Computational Science for NRM D. Wang High Performance Computing Is High Performance Programming Far Away? My PC: 1 GHz Intel Celeron, 50 W, 500 MB, 40 GB, >$1000, Capability: 1 billion floating point operations per second 1991 First computer achieve 1Gflop/s 1995 #400 in Top500 1 Gflop/s 2005 #450 in Top500 1 Tflop/s (10^12) 2015 #1 in Top500 1 Pflop/s (10^15) My PC in 2015: 1-3 trillion floating point operations per second RAM at ORNL: 256, 1.5 Ghz Intel Itanium2, 2 TB, Linux www.ccs.ornl.gov/user/computers.html Computational Science for NRM D. Wang High Performance Computing Basic Concepts Parallel Computer Memory Architecture Shared memory / Distributed memory Communication Parallel tasks need to exchange data, through shared memory bus or over a network Synchronization The coordination of parallel tasks in real time, very often associated with communication Standard Message Passing Library (MPI) Debugging tools (Totalview) Some frontiers in HPC: Fault tolerance, Algorithms… Computational Science for NRM D. Wang Programming Language A vocabulary and set of grammatical rules for instructing a computer to perform specific tasks. Mathematic / Simulation Object-oriented language High level Language Block-structured language Assembly Language Flexible Machine Language Hardware Fast Computational Science for NRM D. Wang Programming Language Two ways to covert your program into machines language Compile the program – to transform a program from source code into object code Interpret the program – immediately execute high-level language Which language is the best? Chose the right language Every language has its strengths and weakness. The choice of which language to used depends on the type of computer the program is to run on, what sort of program it is and the expertise of the programmer Computational Science for NRM D. Wang Store your data Files A collection of data or information that has a name. Binary machine-readable / Textual human-readable (ASCII) Database A collection of information organized in such a way that a computer program can quickly select desired piece of data Relational DB – field, record, files Object DB – every thing is objects http://www.research.ibm.com/journal/sj/361/srinivasan.html Computational Science for NRM D. Wang