Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

35
Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

description

Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam. Goals of this course. Understand typical Computer Science topics Meet with students and some staff members Develop skills: Reading (English) scientific literature Critical/analytical thinking about CS topics Discussing - PowerPoint PPT Presentation

Transcript of Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Page 1: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Introduction Computer Science

Henri Bal

Vrije Universiteit Amsterdam

Page 2: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Goals of this course

● Understand typical Computer Science topics● Meet with students and some staff

members● Develop skills:

● Reading (English) scientific literature● Critical/analytical thinking about CS topics● Discussing● Presenting● Scientific writing

Page 3: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Structure

● Tuesdays: guest lectures● 2 scientific papers provided as context● Questions made up by lecturers

beforehand

● Thursday/Friday/Monday: working groups● 2 students per group present a paper● Each group discusses both papers +

questions

Page 4: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Topics (Tuesday lectures)

● Intro & high-performance computing (Henri Bal)

● Finding & reading scientific literature (Michel Klein, with LI & IMM students)

● e-Science infrastructures (Cees de Laat)● e-Health (Aart van Halteren)● Astronomy & manycores (Rob van Nieuwpoort)● Watson (Lora Aroyo, with LI & IMM students) ● Luggage handling at Heathrow Terminal 5

(Huub van der Wouden, with IMM students)

Page 5: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Working Groups● Supervised by staff members (instructors)● First meeting:

● Instructors will present 1 paper, you do the discussions

● Other meetings:● Students present/discuss papers

● Course material + working group composition will be made available on Blackboard (bb.vu.nl)

Page 6: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Your tasks● Attend Tuesday lectures

● Send brief answers to questions + pose 2 new questions per paper before workgroup deadline

● Give 1 presentation in a working group● Make slides, talk for 10-15 minutes

● Participate in working group discussions

● Write 2-page paper on 1 topic of your choice● Use (find!) 2 extra publications in the literature

● Grading:● 40% participation, 40% paper, 20% presentation

Page 7: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

First presentation

● My personal view on Computer Science● Why is Computer Science so interesting?

● Biased towards my own research area:● High performance distributed computing

Page 8: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Computer Science (CS)

● CS sits between technology and applications, both of which have turbulent developments● Processors, networks, mobiles, wearables, …

● Data explosion in virtually all applications

● CS also studies many fundamental problems of its own● Programming languages, security, AI, theory ….

Page 9: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Outline● Technology

● Computers● Some history● High performance computers● Modern (multicore) PCs

● Networks & mobile computing

● Applications● Data explosion● Computation demands

● Fundamental CS questions

Page 10: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Computers● Mainframe: powerful centralized computer

● IBM 704 (1964)

● Minicomputers: <25K$, for small groups● PDP-8, PDP-11, VAX (1960s-1980s)

● Workstations: expensive personalgraphical machine

● Xerox Alto (1973)

● PCs: inexpensive machine for the masses● IBM PC (1981)

Page 11: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

High Performance Computers

● Computer systems with many processors, all computing in parallel

● Paper: “Back to Thin-Core Massively Parallel Processors”

Page 12: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Warning

● Scientific papers may be overwhelming● Have to learn how to read scientific

literature, without understanding every word

● ‘’Moreover, smart algorithms that exploit data locality, perform loop unrolling, eliminate iterative loops and recursive algorithms, and use idle-power-friendly programming languages and libraries as well as auto-tuning based on multiversion algorithms can achieve higher-energy-efficiency applications.’’

● (You’re not supposed to understand this yet!)

Page 13: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

High Performance Computers (1)

● Vector machines● Can do vector operations in parallel

● A and B: 1-dimensional matrices with 100 elements● Computing A+B (= 100 computations) takes as

much time as doing 1 addition on a sequential computer

● History● 1970s, 1980s (e.g., Cray)● 2000s (Japanese Earth Simulator)● 2010s (GPUs, Graphical Processing Units)

Page 14: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

High Performance Computers (2)

● Massively parallel machines● 1000s of special processors connected by

a special network, all running in parallel, each doing part of the overall computations

● E.g., CM-1, CM-5, Intel Paragon, IBM BlueGene● Connection network uses graph theory

(math)

Page 15: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

High Performance Computers (3)

● Cluster computers● Parallel machines built from off-the-shelf

(commodity) PCs and networks● Excellent price/performance ratio

● Exponential performance growth ofprocessor speeds

● See http://www.top500.orgfor 500 fastest supercomputers

Page 16: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Multicores & Manycores

● All PCs now have >1 compute cores● Every PC is a parallel computer!

● Some PCs already have 48 cores● Core count will increase to hundreds● GPUs (manycores): 1000’s very simple

cores● Intel Phi (2012): 60 Pentium-1’s on 1 chip,

with advanced vector support● Challenge: how to program these things?

Page 17: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Thinking in parallel is hard

● How to split up the work?● Load balancing

● All cores should do the same amount of work

● Communication & synchronization● Cores must exchange data (=overhead)

● Nondeterminism:● A single processor always gives same outcome● With >1 core the outcome may depend on the

order (called a ``race condition’’ bug)

Page 18: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Current debates

● Should we build chips with:● Very fast/complicated (superscalar)

processors?● Hits a ‘’power wall’’, hard to increase clock

frequency● Many slower/simpler (thin) processors?

● Hard to program

● How to deal with energy consumption?● Performance per Watt becomes key factor

Page 19: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Networks

● Wide area networks (WANs)● Local area networks (LANs)● Mobile networks

● Much more in Computer Networks class

Page 20: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Wide area networks

● ARPANET● First computer network, connecting some US

sites (1960s) ● Speeds measured in kbit/s

● Internet● Based on standardized (IP) protocol suite● Connect everyone/everything (Internet-of-

things)

● Dedicated optical networks (light paths)● 10 gbit/s, point-to-point

Page 21: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Local Area Networks

● Ethernet: developed by Xerox PARC (1974)● Speed increased from 10 mbit/s to 100

gbit/s

● Cluster computers use Ethernet or faster commodity networks● Myrinet● Infiniband

Page 22: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

An aside

● In Computer Science● k(ilo)=1024● m(ega)=10242

● g(iga)=10243

● t(era)=10244

● p(eta)=10245

● e(xa)=10246

● All has to do withbinary numbers

Page 23: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

DAS-4Dual quad-core Xeon E5620 24-48 GB memory1-10 TB diskInfiniband + 1Gb/s EthernetVarious accelerators (GPUs, multicores, ….)Scientific LinuxBuilt by ClusterVision

VU (74)

TU Delft (32) Leiden (16)

UvA/MultimediaN (16/36)

SURFnet6

10 Gb/s light pathsASTRON (23)

Page 24: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Mobile computing

● Laptops, sensors, smartphones, tablets● Many forms of mobile networks

● Wifi (local range)● 3G, 4G (lower bandwidth, high coverage)● BlueTooth (for pairing devices)

● Ultimately: ubiquitous computing?● Vision by Mark Weiser (1988)● ‘’machines that fit the human environment

instead of forcing humans to enter theirs’’

Page 25: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Outline● Technology

● Computers● Some history● High performance computers● Modern (multicore) PCs

● Networks & mobile computing

● Applications● Data explosion● Computation demands

● Fundamental CS questions

Page 26: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Application developments

● There is a ``data explosion’’ in many application areas● Huge amounts of data (up to

Petabytes/year)● Very complicated/heterogeneous data

● Demand for computing● Model (simulate) designs on a computer

Page 27: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Data explosion

● Society:● Web, social networks

● Industry, economy:● Banks, stock markets

● Science● LHC (``Higgs particle’’)

● Data stored on world-wide ``grid’’● Bioinformatics (next generation sequencing)● Astronomy: software telescopes (LOFAR, SKA)

Page 28: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Computing demands● Computational science:

● Modeling ozone layer, climate, ocean, human brain● Simulating galaxies

● Engineering:● Aircraft modeling, designing F1 cars (Virgin VR01)● TVs (mostly software), embedded systems

● Games and multimedia:● Computer chess (Deep Blue)● Watson (Jeopardy)● Analyzing multimedia content● Generating movies

Page 29: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Pixar’s ``Up’’ (2009)

Whole movie (96 minutes) would take 94 years on 1 PC

(4 frames per day; 1 second takes 6 days; 1 minute per year)

Page 30: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Some fundamental Computer Science topics

(1)● Operating systems:

● Windows, Linux, Minix (Andy Tanenbaum)

● Programming languages and systems● Fortran, Cobol, C, Java, Python … (thousands)

What happens if you ask a computer scientist to solve a problem?

He/she will come back 3 months later, with …

a new programming language ideally suited for solving your problem

Page 31: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Some fundamental Computer Science topics

(2)● Security

● Preventing/detecting attacks, privacy, etc

● (Semantic) web technology● Finding and reasoning about content on

the web

● Cloud computing● Store data and programs remotely, in the

Cloud

Page 32: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Some fundamental Computer Science topics

(3)● Artificial intelligence

● E.g. automatic machine-learning

● Databases● Storing and searching huge amounts of

data

● Logic, modelling, graph theory, complexity● Essential for many applications

Page 33: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Conclusion

● Modern Computer Science deals with hectic developments in technology and applications

● Both provide us many research problems● Application-driven vs technology-driven

research

● There also are many fundamental CS problems

Page 34: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

Literature (Context)

● Ami Marowka: Back to Thin-Core Massively Parallel Processors, IEEE Computer, December 2011, pp. 49-54

Page 35: Introduction Computer Science Henri Bal Vrije Universiteit Amsterdam

QUESTIONS

● Explain what ``thin cores’’ are

● What are the arguments in favor and against using ‘’thin cores’’ ?

● Which role does energy consumption play in this discussion?

● Compute the energy efficiency of the current 10 largest supercomputers on www.top500.org

● Which type of machine currently is most energy efficient?

● Compare the maximum performance of the current #1 against the performance of the #1 of 10 years ago. What is the difference?