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