Fall 2013 Introduction Dr. Chokchai “Box” Leangsuksun http://www.latech.edu/~box Box’s 1 minute Bio PhD in CS (1995): PhD Thesis: Resource management/allocation in Heterogeneous Parallel Distributed Computing
Download ReportTranscript Fall 2013 Introduction Dr. Chokchai “Box” Leangsuksun http://www.latech.edu/~box Box’s 1 minute Bio PhD in CS (1995): PhD Thesis: Resource management/allocation in Heterogeneous Parallel Distributed Computing
Fall 2013 Introduction Dr. Chokchai “Box” Leangsuksun http://www.latech.edu/~box Box’s 1 minute Bio PhD in CS (1995): PhD Thesis: Resource management/allocation in Heterogeneous Parallel Distributed Computing 7 years in industry (Lucent) Highly Reliable Software/system Architect, PM, Tech lead (15-30 team size) R&D -> 4 major network management products Associate Professor in CS since 2002. 12 graduate students (4 PhD) Collaborations with national and industry labs; ORNL, Intel, Ericsson, NCSA, Dell, etc External funding from NSF, DOE, DOD, Intel Research Interest Cluster/cloud computing, Fault Tolerance, Resileince in HPC, cyber security Teaching Interest OS, Software Engineering, Compiler, HA and HPC Services Program committee: IEEE Cluster computing, Grid computing education Co-founder and chair: High Availability and Performance Computing Workshop (2003, 2004) Important Dates Tues-Thur 8-9:50am class meetings Midterm: Oct 10, 2013 Final: November 7, 2013 Extra class meetings (to sub out-of-town meetings) Proposed ?? Some tickets to job markets High Performance Computing bigDATA – business intelligence Cloud Computing (HPC) application (multicore, GPGPU) Software engineer Health care applications Health Information System IT-enabled diagnostic supporting tools/systems Drug discovery Genomic applications Healthcare IT In year 2014, there is a federal mandate that all healthcare providers must support EHR Electronic Health Records & exchange among healthcare providers & hospitals This year project is to develop a system that will frontend the EHR exchange supports Healthcare IT shortage http://www.himss.org/Content/Files/CSC_US_Healthcar e_Workforce_Shortages_HIT.pdf?utm_source=delivra& utm_medium=email&utm_campaign=university_of_illino is_chicago%2008/19/2011%2016:30:17 Another Graduate course in Winter CSC 557 Special Topics: High Availability (Enterprise & Mission critical) and Performance Computing Reliability issues in real world problem Scalability (performance) aspects Analysis & Design Parallel and Reliable software Programming Research papers High Availability and Performance Computing Workshop A New course: Distributed & Cloud Computing What is HPC? High Performance Computing – Parallel , Supercomputing Achieve the fastest possible computing outcome Subdivide a very large job into many pieces Enabled by multiple high speed CPUs, networking, software etc – fastest possible solution Technologies that help solving non-trivial tasks including scientific, engineering, medical, business entertainment and etc. Time to insights, Time to discovery, Times to markets BTW, HPC is not GRID!!!. Parallel Programming Concepts Conventional serial execution where the problem is represented as a series of instructions that are executed by the CPU Problem Parallel execution of a problem involves partitioning of the problem into multiple executable parts that are mutually exclusive and collectively exhaustive represented as a partially ordered set exhibiting concurrency. Task Problem Task Task Task CPU Parallel computing takes advantage of concurrency to : • Solve larger problems with less time • Save on Wall Clock Time • Overcoming memory constraints • Utilizing non-local resources instructions instructions CPU CPU CPU CPU 8 Source from Thomas Sterling’s intro to HPC HPC accelerates a product FE analysis on 1 CPU 1,000,000 elements Numerical processing for 1 element = .1 secs One computer will take 100,000 secs = 27.7 hrs Says 100 CPUs .27 hr ~ 16 mins HPC Applications and Major Industries Finite Element Modeling Auto/Aero Fluid Dynamics Auto/Aero, Consumer Packaged Goods Mfgs, Process Mfg, Disaster Preparedness (tsunami) Imaging Seismic & Medical Finance Banks, Brokerage Houses (Regression Analysis, Risk, Options Pricing, What if, …) Molecular Modeling Complex Problems, Large Datasets, Long Runs Biotech and Pharmaceuticals This slide is from Intel presentation “Technologies for Delivering Peak Performance on HPC and Grid Applications” Life Science Problem – an example of Protein Folding Take a computing year (in serial mode) to do molecular dynamics simulation for a protein folding problem •Excerpted from IBM David Klepacki’s The future of HPC •Petaflop = a thousand trillion floating point operations per second Significant indicators – why HPC now? Main stream computers with multi-cores (Intel or AMD) In past 1-2 years, CPU speed was flatten at 3+ Ghz More CPUs in one chip – Dual core, multi-core chips Traditional software won’t take advantage of these new processors Personal/Desktop Supercomputing. Many real problems are highly computational intensive. NSA uses supercomputing to do data mining DOE – fusion, plasma, energy related (including weaponry). Help solving many other important areas (nanotech, life science etc.) Product design, ERM/Inventory Management Giants recently sneeze out HPC Bush’s state of union speech – 3 main S&T focus of which Supercomputing is one of them Bill Gates’ keynote speech at SC05 – MS goes after HPC Google search engine - 100,000 nodes Playstation 3 is a personal supercomputing platform Hollywood (Entertainment) is HPC-bound (Pixar – more than 3000 CPUs to render animation) What is Cloud Computing? - Every cloud vendor have their own definition of cloud. In General, Cloud computing is a Internet based computing where hardware resources and software are exposed as a services. 11/6/2015 Towards survivable architecture 13 What is Cloud Computing? These Services are exposed in a scalable manner so that the user can use those services and pay for only those services that are used. as on demand computing just like to get electricity we plug wire into socket. According to the survey by IDC between 2008 and 2010, the main reason to adopt a cloud computing for the organization is low cost option 14 11/6/2015 Towards survivable architecture Goal 1 – Cost Control Cost Many systems have variable demands • Batch processing (e.g. New York Times) • Web sites with peaks (e.g. Forbes) • Startups with unknown demand (e.g. the farmville, instagram, Cash for Clunkers program) Reduce risk • Don't need to buy hardware until you need it 20090909_Virtualizatio nAndCloud 15 Goal 2 - Business Agility More than scalability - elasticity! Ely Lilly in rapidly changing health care business • Used to take 3 - 4 months to give a department a server cluster, then they would hoard it! Using EC2, about 5 minutes! • And they give it back when they are done! Scaling back is as important as scaling up 20090909_Virtualizatio nAndCloud 16 Goal 3 - Stick to Our Business Most companies don't WANT to do system administration Forbes says: • We are is a publishing company, not a software company But beware: Do you really save much on sys admin? You don't have the hardware, but you still need to manage the OS! 20090909_Virtualizatio nAndCloud 17 3 Cloud Service Models Cloud Software as a Service (SaaS) Use provider’s applications over a network Cloud Platform as a Service (PaaS) Deploy customer-created applications to a cloud Cloud Infrastructure as a Service (IaaS) Rent processing, storage, network capacity, and other fundamental computing resources To be considered “cloud” they must be deployed on top of cloud infrastructure that has the key characteristics 18 Examples Amazon EC2 Instagram Farmville Google docs Google App Engine Health Information System (HIS) project “WHO has the responsibility to collaborate with Member States in the generation and the use of appropriate health information to support decision making, health care delivery and management of health services, at the national and sub-national levels.” from who website. A system to support patient information for health care support, patient care management, finance etc. Issues: Data records, open standard, patient transfer HL7 is a standard protocol to support HIS This year project is to develop an HIS-supported data exchange system. Seeing Seeing the the Forest Forest in in the the Midst Midst of of the the Trees Trees The material in this powerpoint is originally from Rational company. It has been modified and used as an introduction to RUP as educational purpose only in Advanced Topics in software engineering CSC532 The original presentation: By Dr. Curtis Hrischuk Adjunct professor at University of Alberta, Canada CSC 532: Adv Topics: Software Engineering Syllabus is on line www.latech.edu/~box [email protected] Software industry experiences • • • • • • • Software Developer Project Lead/Manager Architect System Engineer Customer Trainers Tester Researcher Syllabus http://www2.latech.edu/~box/aswengr.htm Project/Class Management Real World Experiences and Field Trip IBM or NVDIA (tentative) Computing Center (??) Talk by industry and National Lab Agenda (intro) What is happening in the software world What is most important to the developer What is UML & Unified Process What is cool that UML is useful for Who’re and What ‘re involved in software development/engineering? User/customer – input/needs Front Ends/System Engineer – Requirements System Architect Analyst/Engineer – Architectures Developers – design, coding (modeling), unit test Testers/SVV – test plan, various testing Technical Writers – documentation Current Engineers – site survey, deployment/upgrade Customer support – support/ trouble tickets Project Manager – Plan, timeline Configuration manager – environment Etc…. What is happening in the software world The Good News… . . . . . . . . . . . “26% of software projects succeed.” . . . . . . . . . . . Standish Group, CHAOS Report, 2000 . . . The Bad News… . . . . . . . . . . . That means 74% failed! . . . . . . . . . . . Standish Group, CHAOS Report, 2000 . . . Software Development is Complex Poorly designed project architectures require untimely changes Requirements are undefined or change mid-project Discovering defects late in project or flaws in architecture and design Lack of communication between disparate team members Artifacts are not accessible to all team members Poor Management = CHAOS How To Make Sure Your Project will Fail Lack of user input Unclear objectives Incomplete requirements and specifications Changing requirements and specifications Lack of planning COMMUNICATION Standish Group, CHAOS Report, 2000 Necessity of Communication Think of a 100 man-person team Analysts, developers, QE, documentation, contractors Marketing, product management, VPs Geographically dispersed Different offices Different countries Different time zones Requirements change or priorities are rearranged Different sub-systems are developed at different times Number of communication paths increases by the square of the team size The Software Development Paradox Faster Time to Market Internet time :( Now do it with less … Higher Quality The Software Effort Breakdown Over the life of a product, the distribution of effort is: 30% development 70% maintenance Development 40% analysis &design 20% implementation 40% validation Maintenance 20% adaptive 60% perfective 20% corrective < Requirements and modeling < IDE and compiler (fun?) < Testing What is Most Important How to Make a Better Car … The manufacturing of cars follows a process (assembly line) An efficient assembly process means a good output rate A quality assembly process means few defects The process is tailored for the product The process is improved and made more efficient Software is no different … The software process is the competitive advantage We are manufacturing software Tools are one aspect of the process Best Practices Best Practices Unified Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Continuously Verify Quality Manage Changes (UCM) Model Visually (UML) Adopted by… IBM Microsoft Oracle Sun Cap Gemini Ernst & Young Deloitte Consulting Rational Software! Avoid the hubris that you can do without a process Recent news in industry & Academic 90 % or more university colleges teaches UML IBM bought Rational for 2 Billion Microsoft Embraces Modeling Develop Iteratively Requirements Analysis & Design Planning Implementation Initial Planning Management Environment Test Evaluation Each iteration results in an executable release Deployment Product Life cycle (another view) Benefits of Iterative Development Resolves major risks before large investments Improves quality through continuous testing Target your testing where breaks are likely Delivers frequent, objectively verifiable milestones Keep moral up Keep managers and customers happy Provides early and continuous user feedback Keeps customers even happier (they pay the bills) Enables quick reaction to new requirements and change requests Find out needed changes as soon as possible More Process Plumbing Defect tracking for those of us who aren’t perfect Identify errors, enhancements, priorities, … Per product, release, development stream, … Leads to quality decisions ----> Million $ decisions Project management We’ll leave it to Microsoft! Requirements management Configuration and change management Product Life cycle Manage Requirements Are you building the system that the customer wants? Find the impact when the customer changes their mind Configuration and Change Management (next) Control, track, and monitor changes to artifacts Enable parallel iterative development Multiple teams working in different streams Establish secure workspaces for each developer Automate integration and build management Workspace Management Reports Alert Parallel Development ! ! Build Management Continuously Verify Quality Assess architecture for functionality defects Verify critical functions early by focusing on key use-case scenarios Drive architecture with key scenarios Assign “at risk” scenarios to earliest iterations Implement and assess each iteration What is Missing Need a common language that unifies the different stake holders Different stake holders have different software abstractions (models) and artifacts We need …. Communication Using the Unified Modeling Language Web Modeling Business Modeling Requirements Modeling Application Modeling Data Modeling One language – One tool – One team Who Should Model? Business Analyst Software Engineer Requirements and Business Models C++ Java SW Models HTML CGI XML JavaScript Data Models Web Content Developer Database Designer The Developer’s View Structure Diagram Class Diagram Sequence Diagram Behavior Diagram The Model is The Application Component Diagram Use Case Diagram Deployment Diagram Host or Target Application The Unified Modeling Language UML History 1994: Grady Booch and Jim Rumbaugh began unifying their modeling techniques at Rational Software 1995: Ivar Jacobson joins team at Rational 1996: Consortium of 12 companies formed to oversee UML Jan 1997: Version 1.0 published Sept 1997: Revised Version 1.1 Nov 1997: Object Management Group standardized Version 2.0 What is Abstraction? • A model that includes most important aspects of a given problem while ignoring less important details Salesperson Customer Product • An example of an order processing abstraction Why is the Word “Model” Important? Developing software is about developing executable abstractions An abstraction or view is a model For example, a class is an abstraction of a real-world entity or concept Different stake holders have different abstractions Marketing has the feature sheet Developers have the requirements Testing have test cases and configurations There are model types in building a system Why is UML So Great? Combines best ideas from software engineering, database theory, and system design Technology agnostic Problem domain agnostic Extensibility mechanisms allow tailoring to the domain Scalable Recursive, hierarchical decomposition Bootstrapping principle Language that can define itself High information density Visual Packs a lot into a small space UML Models Models capture the structural, or static, features of systems the behavioral, or dynamic, features of systems. Models have several independent dimensions Each emphasize particular qualities of a model Each dimension has a diagram type UML Diagrams Use case diagrams depict the functionality of a system. Class and object diagrams for the static structure Sequence (collaboration) diagrams for behavior in a scenario State diagrams for execution Activity diagrams for process descriptions Component diagrams for dependencies between components Deployment diagrams for configuration and environment Other Elements of UML There are many Package, sub-system, class, classifier, interface, … We really don’t have the time to discuss this Talk to your professors There are many good books around Stop here: Move to intro to OO Newbie Difficulties Fallacy of Identification We think that our models are in fact reality The model is an abstraction with assumptions Our assumptions fit reality Reality does not fit our assumptions Analysis Paralysis When developers only focus on the model Need to make a decision but the model provides no guidance Developers are stuck Don’t know what to do next Leads to diminishing returns More modeling effort does not greatly increase the quality of the design Do something logical to break the cycle Cool Things to do with UML Unit Test Functionality Generate test code directly from model Provide test data and expected results Test Driver Test Generation Model Generate Component Test Developer Adds Test Data Stub Stub System Test Functionality Automatically generate code for component testing from a UML model Enable scenario-based testing during component integration, before system is complete Model Automates Component Testing Complete Code Generate “Skeleton” Code Tests Brief Description: The description should briefly convey the role and purpose of the use case. A single paragraph should suffice for this description. 1. Embellish model Easier testing More complete testing Flow of Events: This use case starts when the actor does something. An actor always initiates use Cases. The use case should describe what the actor does and what the system does in response. It should be phrased in the form of a dialog between the actor and the system. The use case should describe what happens inside the system, but not how or why. If information is exchanged, be specific about what is passed back and forth. For example, it is not very illuminating to say that the Actor enters customer information; it is better to say the Actor enters the customer’s name and address. A Glossary of Terms is often useful to keep the complexity of the use case manageable; you may want to define things like customer information there, to keep the use case from drowning in details. Simple alternatives may be presented within the text of the use case. If it only takes a few and what the system does in response. It should be phrased in the form of a dialog between the actor and the system. The use case should describe what happens inside the system, but not how or why. If information is exchanged, be specific about what is passed back and forth. For example, it is not very illuminating to say that the Actor enters customer information; it is better to say the Actor enters the customer’s name and address. A Glossary of Terms is often useful to keep the complexity of the use case manageable; you may want to define things like customer information there, to keep the use case from drowning in details. Simple alternatives may be presented within the text of the use case. If it only takes a few code code code code code code code code code code code code code code code code code code code code code code code code code code code code code code code code code code code code code code codecode code code code code code code code code code code code code code codecode code codecode code code ?? Create Components 2. Automatically generate component tests from the model Code Templates For Architecture Design Ready made design and code solutions for common development tasks COM, MFC, ATL MTS, ADO ASP, DHTML Fully customizable You can create your own code templates to automate common design and implementation tasks to ensure consistency in both design and code Frameworks For Architecture Definition Frameworks: Predefined model element sets for modeling specific systems Used to: Define the architecture of specific types of systems Provide a set of reusable components Create templates for new models Simplify development with commercial frameworks Promote reuse and standards with custom user frameworks Robust Development Using Proven Patterns Develop your application using predefined industry recognized patterns: Apply patterns to existing model elements Create new model elements automatically via patterns Leverage proven designs Keeping the Model and Code Synchronized Manual model and code synchronization On-demand synchronization Complete control as updates occur Auto synchronization Source is updated when model is modified Rational Rose model updated when source is modified UML Model Debugging Rational Rose RealTime Model Generate/Compile Control/Observe Distributed UML Designs Enables deployment and visualization of distributed applications Supports patterns for creating high-availability applications Provides the distributed communication infrastructure Administration Call Server COTS Server Shelf Controller H/W Control Do all of this for Multiple Languages UML models can be targeted for different languages Java Microsoft Visual C++ Microsoft Visual Basic ANSI C++ Ada IDL XML-DTD SQL That’s all Some Important Web Sites The SEEDS program will let your college get Rose http://www.rational.com/corpinfo/college_relations/seed/terms cond.jsp .NET development http://rational.devx.com/index.htm/CONTENT_ID/5959 Java development www.jroundup.com Project management www.ganthead.com Rational: Ongoing Leadership No.1 in Visual Modeling, 4 years running1 Rational Rose “...the battle for dominance is over: Rational wins.” Ed Yourdon No.1 in SCM, 3 years running1 Rational ClearCase “ClearCase is the dominant SCM tool.” No.1 in Requirements Management2 Ovum Rational RequisitePro “Easy-to-use...ideal for team based development...” Real-time embedded leadership InfoWorld Rational Rose RealTime “…a major contender as the de facto standard for real-time embedded ...” Driving Standards in Best Practices “…the company that put the ‘unified’ in modeling languages…” 1 IDC, 2 Standish IDC UML, WebDAV JavaPro