Lecture 0 Anish Arora CSE 6333 Introduction to

  • Slides: 12
Download presentation
Lecture 0 Anish Arora CSE 6333 Introduction to Distributed Computing

Lecture 0 Anish Arora CSE 6333 Introduction to Distributed Computing

Distribution means… • Multiple processes (or processors) that can communicate with each other §

Distribution means… • Multiple processes (or processors) that can communicate with each other § via shared memory or message channels • Each process has only partial knowledge of system parameters § loosely coupled operation, MIMD architecture • Processes and communication are subject to faults Þ Cooperation of processes to achieve a common goal lacks § a shared clock § a global shared memory § accurate failure detection § resource: memory, time, power (sometimes)

Distribution goals • Scalability • Modularity and heterogeneity • Data sharing • Resource sharing

Distribution goals • Scalability • Modularity and heterogeneity • Data sharing • Resource sharing • Accommodating geography • Reliability, fault-tolerance, security, timeliness, recoverability • Low cost, better performance to cost, offloaded maintenance

Distribution challenges • Concurrency yields complex behaviors § Reasoning about non-determinism, about compositions •

Distribution challenges • Concurrency yields complex behaviors § Reasoning about non-determinism, about compositions • Consistency/coordination despite lack of global state/time • Failure is the “norm” and not the “exception” § Spreading effects of corruption § Many threats and several security exploit § Economic and social impact of denial of service/compromise • Scalability

Distribution examples • Web servers (http) • Peer-to-peer services and overlays • Grid clusters,

Distribution examples • Web servers (http) • Peer-to-peer services and overlays • Grid clusters, Cloud data centers • Multi-processor and multi-core systems • Wireless sensor network middleware and applications • Network and communication protocols • Ad hoc, mesh, mobile networks • Three tier database servers • Client server systems • Distributed operating systems • Social networks, agents

We will discuss… • Global time and global state • Reasoning about distributed programs

We will discuss… • Global time and global state • Reasoning about distributed programs • Problems in fault-tolerant distribution • Wireless sensor networks • Distributed data structures, peer-to-peer • Systems design: shared memory, message passing, transactional memory

Course approach • Focus on common, fundamental problems § In abstract form ! •

Course approach • Focus on common, fundamental problems § In abstract form ! • Develop and formally specify algorithms • Emphasize reasoning about correctness § Properties of systems are validated thus § Proofs also help analyze program performance § Our focus is on deterministic reasoning • Some lab exercises (in the context of sensor networks) • You will present one published algorithmic concept

What we won’t cover • Particular distributed operating systems and their implementation issues (see

What we won’t cover • Particular distributed operating systems and their implementation issues (see CSE 5911, formerly 762) • Programming technologies and middleware for distributed computing, in particular CORBA, Java RMI, EJB, Javaspaces, Jini, XML, and Web Services (see CSE 5234, formerly 769) • Security (see CSE 5473, formerly 651) and Cryptography (see CSE 5351, formerly 723) • Configuring, managing, and maintaining of distributed systems

Course materials Webpage: http: //cse. ohio-state. edu/~anish/763. html syllabus, slides, notes, readings, assignments, announcements

Course materials Webpage: http: //cse. ohio-state. edu/~anish/763. html syllabus, slides, notes, readings, assignments, announcements We’ll use a set of my course notes (some electronic, others not) and papers from the literature References • Paul Sivilotti, Course notes, Introduction to Distributed Systems, 2009 • A. Kshemkalyani and M. Singhal and N. Shivaratri, Distributed computing Concepts, Algorithms and Systems, Cambridge, 2008 • Vijay K. Garg, Elements of Distributed Computing, Wiley, 2002 • K. M. Chandy and J. Misra, Parallel Program Design: A Foundation, Addison-Wesley, 1988

What we will assume You should be familiar with: § Boolean (propositional and predicate)

What we will assume You should be familiar with: § Boolean (propositional and predicate) logic § C/C++ and/or script programming I expect from you some mathematical maturity, including the ability to learn and use new mathematical & programming notations (Nes. C for instance)

My Expectations • Read the material assigned in class • Work independently and ethically

My Expectations • Read the material assigned in class • Work independently and ethically on homeworks and labs • Ask questions

Grading plan • Homework and lab assignments 25% • In class quizzes (~5) 10%

Grading plan • Homework and lab assignments 25% • In class quizzes (~5) 10% • Midterm quiz 25% • Presentation 15% • Take-home final quiz 25% Working alone is a must ! Discuss questions with grader or me as need be Grading is relative. An A grade may require a lot less than 90%