390 likes | 983 Views
Headquarters: Natick, Massachusetts USAUSA: California, Michigan, Washington DC, TexasEurope: UK, France, Germany, Switzerland, Italy, Spain, The Netherlands, SwedenAsia-Pacific: Korea, Australia, ChinaDistributors in 25 countries. The MathWorks at a Glance. Earth's topography on an equidist
E N D
1. Modelling Systems Biology Patterns with MATLAB and SimBiology
2. Headquarters:Natick, Massachusetts USA
USA: California, Michigan, Washington DC, Texas
Europe:UK, France, Germany, Switzerland, Italy, Spain, The Netherlands,Sweden
Asia-Pacific:Korea, Australia, China
Distributors in 25 countries The MathWorks at a Glance Here is some real quick introductory information about TMW for those less familiar with the company
Our corporate headquarters are located in Natick, Massachusetts
In the US, we have addl field personnel here in Detroit serving our Automotive customers and in California, Washington, and Texas serving customers in aerospace and defense.
The MathWorks also has offices throughout Europe, and in Korea.
Elsewhere in the world we are represented by distributors that sell and support our products in their regions marked in grey
Here is some real quick introductory information about TMW for those less familiar with the company
Our corporate headquarters are located in Natick, Massachusetts
In the US, we have addl field personnel here in Detroit serving our Automotive customers and in California, Washington, and Texas serving customers in aerospace and defense.
The MathWorks also has offices throughout Europe, and in Korea.
Elsewhere in the world we are represented by distributors that sell and support our products in their regions marked in grey
3. Agenda
4. Technical Computing Workflow (CLICK)
The first step in this workflow is to get your data well call this our Access step.
MATLAB provides many ways to do this
Through files on disk. It might be an Excel file, or a plain text file.
Through other S/W applications perhaps a data acquisition system, or another programming language
Or it could be through H/W, such as T&M equipment, or a set of sensors
(CLICK)
Once inside MATLAB, we have the Explore & Discover step.
This is really why youre using MATLAB to find something out about your problem - you might say youre here to decide something - to make a decision.
Some of the specific tasks you might do in MATLAB include:
Data Analysis
Algorithm Development
Creating and developing applications
These are the things that MATLAB is well known for.
Now whats your next step?
(CLICK)
Well, in most cases, you have to do something actionable with your results. In my case it was to create a report that I had to share with my colleagues.
This is what we call our Share step.
Also - as Lisa highlighted during the introduction, your work may be directly involved in a particular aspect of the design process so your results might feed your downstream design tools. Thats the case here, as well.
Or if youve created an application, you may want to deploy it to another environment perhaps by creating a stand-alone application for someone else, or even integrating it into another environment, such as Excel.
Well use this workflow throughout the day to help us in our discussions.
Hopefully youll see that MATLABs integration allows all of these steps to be managed from a single environment.
One other important factor to consider as we look at this workflow is that engineering and science often requires us to repeat our steps perhaps because we have new design constraints, or someones asked us to refine our analysis approach or we just have additional data that needs to be analyzed.
(CLICK)
MATLAB provides a convenient way to automate the work that youve done, so that you can easily reuse it moving forward. This will be an important part of todays discussion including how I created this report.
(CLICK)
The first step in this workflow is to get your data well call this our Access step.
MATLAB provides many ways to do this
Through files on disk. It might be an Excel file, or a plain text file.
Through other S/W applications perhaps a data acquisition system, or another programming language
Or it could be through H/W, such as T&M equipment, or a set of sensors
(CLICK)
Once inside MATLAB, we have the Explore & Discover step.
This is really why youre using MATLAB to find something out about your problem - you might say youre here to decide something - to make a decision.
Some of the specific tasks you might do in MATLAB include:
Data Analysis
Algorithm Development
Creating and developing applications
These are the things that MATLAB is well known for.
Now whats your next step?
(CLICK)
Well, in most cases, you have to do something actionable with your results. In my case it was to create a report that I had to share with my colleagues.
This is what we call our Share step.
Also - as Lisa highlighted during the introduction, your work may be directly involved in a particular aspect of the design process so your results might feed your downstream design tools. Thats the case here, as well.
Or if youve created an application, you may want to deploy it to another environment perhaps by creating a stand-alone application for someone else, or even integrating it into another environment, such as Excel.
Well use this workflow throughout the day to help us in our discussions.
Hopefully youll see that MATLABs integration allows all of these steps to be managed from a single environment.
One other important factor to consider as we look at this workflow is that engineering and science often requires us to repeat our steps perhaps because we have new design constraints, or someones asked us to refine our analysis approach or we just have additional data that needs to be analyzed.
(CLICK)
MATLAB provides a convenient way to automate the work that youve done, so that you can easily reuse it moving forward. This will be an important part of todays discussion including how I created this report.
5. Technical computing in Life Sciences
6. Key takeaways from this tutorial MATLAB
A sophisticated environment for mathemathical modelling and data analysis
Big set of functions and algorithms
Easily extensible and programmable
SimBiology
An extension for Systems Biology modelling
Graphic modelling capabilities, events, rules and stochastic solvers
Tight integration with MATLAB
7. Agenda
8. Modeling workflow Building the model
Graphical description of relations
Representation of biochemical knowledge
9. Example: The cell cycle Generic model for all cells
Mediated by numerous external factors
Big role in diseases like cancer
10. Example: The cell cycle Cyclin + Cyclin dependent kinases are main components
Cyclin mediated CDC activation / deactivation
11. Goldbeter mitotic oscillator
12. Modeling workflow Building the model
Graphical description of relations
Representation of biochemical knowledge
13. Modeling workflow Building the model
Graphical description of relations
Representation of biochemical knowledge
14. The MATLAB Environment High-level technical computing language
Development environment
Platform independent
Feature areas
Mathematics
Graphics and GUI Design
File I/O
Call C/C++, Fortran, Java, COM
Open and extensible SCRIPT:
MATLAB is a high-level technical computing language letting you program in a similar way to a traditional language such as C or C++ but at a higher-level
It contains interactive analysis tools letting you carry out many common tasks in a point and click way to let you experiment with ideas.
This is all contained in an integrated development environment, a bit like visual studio, letting you manage your code, data and files.
MATLAB contains more than a thousand language and interactive features for mathematics, graphics and GUI design, file I/O, and you can interface to other languages and technologies.
TRANSITION:
Lets now start MATLAB (mention using big fonts or turn them on and show them)SCRIPT:
MATLAB is a high-level technical computing language letting you program in a similar way to a traditional language such as C or C++ but at a higher-level
It contains interactive analysis tools letting you carry out many common tasks in a point and click way to let you experiment with ideas.
This is all contained in an integrated development environment, a bit like visual studio, letting you manage your code, data and files.
MATLAB contains more than a thousand language and interactive features for mathematics, graphics and GUI design, file I/O, and you can interface to other languages and technologies.
TRANSITION:
Lets now start MATLAB (mention using big fonts or turn them on and show them)
15. Modeling workflow Building the model
Graphical description of relations
Representation of biochemical knowledge
16. Optimization Toolbox Graphical and command line tools and solvers for:
Linear and nonlinear programming
Quadratic programming
Nonlinear least-squares, data fitting, and nonlinear equations
Multiobjective optimization
Binary integer programming w/ that said the Optimization Toolbox extends ML with tools and popular solvers for both standard and large-scale optimization.
These address the most popular optm problem areas including
READ.
w/ that said the Optimization Toolbox extends ML with tools and popular solvers for both standard and large-scale optimization.
These address the most popular optm problem areas including
READ.
17. Agenda
18. Parallel Computing Traditionally, working on a cluster means that you are running jobs in batch mode.
In other words, you submit jobs to a cluster, leave the cluster to do your processing, and then come back at a later date to pick up your results;
There is no interaction with your job whilst it is running.
This can lead to many problems. For example, if something goes wrong in the code, then you have no way of finding out until you return to pick up the results.
If there are errors in the code, then it is hard to debug the problem since it isnt possible to set a breakpoint and work interactively with your program.
You may find yourself littering your code with print statements in order to diagnose what is going on.
If your algorithm takes longer than anticipated to run, then it can also be very difficult to find out where the bottlenecks are in your code.
The solution to this is to use the interactive programming capabilities of MATLAB and Parallel Computing Toolbox.
Traditionally, working on a cluster means that you are running jobs in batch mode.
In other words, you submit jobs to a cluster, leave the cluster to do your processing, and then come back at a later date to pick up your results;
There is no interaction with your job whilst it is running.
This can lead to many problems. For example, if something goes wrong in the code, then you have no way of finding out until you return to pick up the results.
If there are errors in the code, then it is hard to debug the problem since it isnt possible to set a breakpoint and work interactively with your program.
You may find yourself littering your code with print statements in order to diagnose what is going on.
If your algorithm takes longer than anticipated to run, then it can also be very difficult to find out where the bottlenecks are in your code.
The solution to this is to use the interactive programming capabilities of MATLAB and Parallel Computing Toolbox.
19. Parallel Computing with MATLAB So that quick example has given you a taster of what we will be talking about today.
So, what is the general philosophy of parallel computing with ML and SL?
The bottom line is that the parallel computing tools let you coordinate and
execute MATLAB operations on a pool of MATLAB workers, and the user does not have to worry too much about the specifics of the systems that are used.
On the left, we have a local machine used to develop code machine.
This is the machine that you normally use to run MATLAB, the parallel computing tools and perhaps MATLAB extensions.
On the right, we have a pool of MATLAB workers, which could represent a local multi-core processor or a remote cluster.
The Parallel Computing tools allow to develop and test parallel code, to send jobs to and retrieve results from the pool of MATLAB workers.
On each node of the pool, we start up a special instance of MATLAB that can only be invoked using the Parallel Computing tools. So that quick example has given you a taster of what we will be talking about today.
So, what is the general philosophy of parallel computing with ML and SL?
The bottom line is that the parallel computing tools let you coordinate and
execute MATLAB operations on a pool of MATLAB workers, and the user does not have to worry too much about the specifics of the systems that are used.
On the left, we have a local machine used to develop code machine.
This is the machine that you normally use to run MATLAB, the parallel computing tools and perhaps MATLAB extensions.
On the right, we have a pool of MATLAB workers, which could represent a local multi-core processor or a remote cluster.
The Parallel Computing tools allow to develop and test parallel code, to send jobs to and retrieve results from the pool of MATLAB workers.
On each node of the pool, we start up a special instance of MATLAB that can only be invoked using the Parallel Computing tools.
20. Easier Parallel Programming Example: Transposing a Distributed Matrix The simplest example to show our parallel computing capabilities is to transpose a matrix. When you transpose a matrix, the rows become columns and the columns become rows. If the matrix is distributed across processors, when you transpose it, all processors have to send (and receive) their pieces of the matrix to other processors to get together to the final result.
Lets suppose that a user using FORTRAN and MPI wants to transpose a large matrix distributed in many processors. Then, lets compare it with the equivalent algorithm written using DC and MPI.
How would a user transpose a matrix using the new parallel computing capabilities?
They would need to write 2 lines of code
Distribute an array across the cluster
Apply the transpose function to the distributed array
The beauty of what is going here is not only that the code is very short, it is also the same syntax/functions that users will write to transpose a matrix located in their local machines.
Benefits of working with distributed arrays and parallel algorithms:
The amount of computation performed by each individual processor is reduced, resulting in faster processing
And the problem data size can be increased by using memory available on multiple processors.
Because the ability to view related data distributed across processors as a single array closely matches the serial programming model, the transition from serial to parallel programming is smoother than using, for example, MPI. Until now, this transition was so hard that stopped people from going parallel. With our parallel computing capabilities, users can continue prototyping and developing algorithms with MATLAB even if they run in a cluster.The simplest example to show our parallel computing capabilities is to transpose a matrix. When you transpose a matrix, the rows become columns and the columns become rows. If the matrix is distributed across processors, when you transpose it, all processors have to send (and receive) their pieces of the matrix to other processors to get together to the final result.
Lets suppose that a user using FORTRAN and MPI wants to transpose a large matrix distributed in many processors. Then, lets compare it with the equivalent algorithm written using DC and MPI.
How would a user transpose a matrix using the new parallel computing capabilities?
They would need to write 2 lines of code
Distribute an array across the cluster
Apply the transpose function to the distributed array
The beauty of what is going here is not only that the code is very short, it is also the same syntax/functions that users will write to transpose a matrix located in their local machines.
Benefits of working with distributed arrays and parallel algorithms:
The amount of computation performed by each individual processor is reduced, resulting in faster processing
And the problem data size can be increased by using memory available on multiple processors.
Because the ability to view related data distributed across processors as a single array closely matches the serial programming model, the transition from serial to parallel programming is smoother than using, for example, MPI. Until now, this transition was so hard that stopped people from going parallel. With our parallel computing capabilities, users can continue prototyping and developing algorithms with MATLAB even if they run in a cluster.
21. Parallel for-Loops parfor i = 1 : n
% do something with i
end
Mix task-parallel and serial code in the same function
Run loops on a pool of MATLAB resources
Iterations must be order-independent
M-Lint analysis helps in converting existing for-loops into to parfor-loops
So let me summarize what you learned about parfor loops.
Parfor loops provide an easy way of converting your serial code into something that will run in distributed mode; it is a task-parallel language construct. Parfor loops are written in the same functions as your serial code, and MATLAB will automatically run the code inside the loop on a matlabpool, if there is one running.
You can start up additional MATLAB sessions using the matlabpool command. These additional MATLAB sessions may reside on your cluster, or even on your local machine. You can think of the matlabpool as being a bit like being able to connect to many different printers on your PC.
M-Lint analysis now works on parfor loops, making it easier for you to identify if your existing for loops can simply be modified to parfor with no additional changes.
So let me summarize what you learned about parfor loops.
Parfor loops provide an easy way of converting your serial code into something that will run in distributed mode; it is a task-parallel language construct. Parfor loops are written in the same functions as your serial code, and MATLAB will automatically run the code inside the loop on a matlabpool, if there is one running.
You can start up additional MATLAB sessions using the matlabpool command. These additional MATLAB sessions may reside on your cluster, or even on your local machine. You can think of the matlabpool as being a bit like being able to connect to many different printers on your PC.
M-Lint analysis now works on parfor loops, making it easier for you to identify if your existing for loops can simply be modified to parfor with no additional changes.
22. Large Data Sets (Data Parallel) With large data sets I can break it into pieces and spread them across several computers. This mode of operation is called Data Parallel all of the machines in the cluster work together on the same task, but each machine has different data.
This kind of problem is also referred to as SPMD (Single Program Multiple Data), or sometimes SIMD (Single Instruction, Multiple Data).
For example here I can break this large matrix evenly into four pieces and have them spread across four computers.
Now, this distribution thing by itself doesnt really do us any good. It will be nice to operate on this matrix too!
Now, very basic operations like taking a sine or cosine are easy, we can simply take each element separately and apply a function. But what about complex linear algebra operations or even things like matrix multiplication or matrix transpose where the computers need to know what the data is on the other computers.
In general this is not easy With large data sets I can break it into pieces and spread them across several computers. This mode of operation is called Data Parallel all of the machines in the cluster work together on the same task, but each machine has different data.
This kind of problem is also referred to as SPMD (Single Program Multiple Data), or sometimes SIMD (Single Instruction, Multiple Data).
For example here I can break this large matrix evenly into four pieces and have them spread across four computers.
Now, this distribution thing by itself doesnt really do us any good. It will be nice to operate on this matrix too!
Now, very basic operations like taking a sine or cosine are easy, we can simply take each element separately and apply a function. But what about complex linear algebra operations or even things like matrix multiplication or matrix transpose where the computers need to know what the data is on the other computers.
In general this is not easy
23. Demo: Monte Carlo Simulation of Coin Tossing tbdtbd
24. During the First Monte Carlo Demo Dont forget to talk independence and parfor loops during the first Monte Carl Demo.
This will set you up for the second demo which illustrates a case where loops are initially dependent. tbdtbd
25. Demo: Monte Carlo Simulation of Coin Tossing tbdtbd
26. Run Four Local Workers with a Parallel Computing Toolbox License Easily experiment with explicit parallelism on multicore machines
Rapidly develop parallel applications on local computer
Take full advantage of desktop power
Separate computer cluster not required tbdtbd
27. Scale Up to Cluster Configuration with No Code Changes tbdtbd
28. Versatile Modes of Access Access to single or multiple clusters by single or multiple users (one-to-many, many-to-one)
29. Agenda
30. Systems biology with MATLAB: SimBiology Extend the MATLAB platform for systems biologists
Gain insight into dynamic behavior of pathways and biological systems
Communicate and exchange dynamic models
31. Goldbeter mitotic oscillator in SimBiology
32. Goldbeter mitotic oscillator
33. What else can you do?
34. Agenda
35. Why use MATLAB & SimBiology for systems biology Building the model
Graphical description of relations
Representation of biochemical knowledge
36. Why use MATLAB & SimBiology for systems biology Building the model
Graphical description of relations
Representation of biochemical knowledge
37. Why use MATLAB & SimBiology for systems biology Building the model
Graphical description of relations
Representation of biochemical knowledge
39. Note: Replace the center graphic with an image that is appropriate for your audience (automotive and telecom images are hidden beneath the airplane image)
The MathWorks has numerous internal groups that provide a variety of services to our customers. These services range from free support and guidance to paid engagements that include deliverables.
We will briefly review the type of services that each group provides its customers, but always remember that if you still have questions (now or in the future) about which service is best suited for you and your needs, you can always contact your account manager to discuss the options.Note: Replace the center graphic with an image that is appropriate for your audience (automotive and telecom images are hidden beneath the airplane image)
The MathWorks has numerous internal groups that provide a variety of services to our customers. These services range from free support and guidance to paid engagements that include deliverables.
We will briefly review the type of services that each group provides its customers, but always remember that if you still have questions (now or in the future) about which service is best suited for you and your needs, you can always contact your account manager to discuss the options.