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 Report

Transcript 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