We may earn an affiliate commission when you visit our partners.
Course image
H Soltan

This course helps students, researchers, and anyone using the MATLAB decrease the execution time they take to execute a program

Read more

This course helps students, researchers, and anyone using the MATLAB decrease the execution time they take to execute a program

All computers today and the laptops have multi-cores and GPUs. But not all users use the to run or execute the programs in parallel.

The purpose of the course is to fill this gap. Is to teach you with practical examples how to use all resources on your computer and also how to monitor them.

The course is divided into many sections:

  1. The first is an introduction to the hardware of the CPUs, cores, and GPUs. It is better to understand the basic components of these items to be able to get the best utilization when you use them.

  2. The second section is explaining two concepts. The multi-threading and the multi-workers. The first is a built-in mechanism to run some functions in parallel using many cores but we can't control the number of cores and the way that the functions execute. The second one (multi-workers) is used to run any function on multiple cores but here we can control the number of cores to optimize the program execution. Also, I explained some examples and measured the performance parameters to differentiate between the two concepts.

  3. The third section is the GPU section. In the section, I explained how to run any function on the GPUs to make use of the hundred or thousands of cores that the GPUs have. There are some notations to get the best results and I explained all of these notations with examples.

  4. Deep learning and neural networks: in this section, you will learn how to train any neural network in parallel on GPUs or multi-cores. And also how to run the training process in the background in order to be able to use MATLAB while it is running.

Enroll now

What's inside

Learning objectives

  • Run deep learning models in parallel on gpus
  • Learn the difference between cores, cpus and gpus
  • Learn the concept of multi-threading in matlab with examples
  • Learn the concept of multi-workers in matlab with examples
  • Measuring the performance of each parallel computing code
  • Learn how to convert your code to parallel computing to increase the performance
  • Run matlab files and functions in the background
  • Using gpus to execute and run matlab functions (excellent performance)

Syllabus

Introduction
The concept of cores, CPUs and GPUs (important)
The difference between the cores and the logical processors
Multi-threading and Multi-cores with practical examples
Read more
Practical examples on the multi-threading concept
Practical examples on the multi-workers concept
How to control the number of cores that execute your code?(practical examples)
4 mistakes when using parfor loop (be carful about them)
Nested parfor loops
nested-loops: Calculating the amount of data sent to each core
Functions in parfor loop
Reduction variables (independence) in parfor loop
displaying values inside the parfor loop
Single instruction multiple data (SPMD)
Run MATLAB functions in background using parfeval
Run MATLAB files in background using batch jobs
GPU parallel programming in MATLAB
Check if your GPU supports parallel computing with MATLAB
Read the GP information in MATLAB
Running MATLAB functions on GPUs
Important Notations to run functions on GPUs (Sharpen an image)
Running codes on multiple GPUs
Run Deep learning and Neural network GPUS (parallel)
Train the neural networks in parallel using GPUS in detail
Using multi-GPUs for training the neural networks
Training deep learning model in parallel using GPUs
Train deep NN in the background in parallel

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops parallel programming skills, which are in high demand in industry
Taught by H Soltan, who are recognized for their expertise in parallel computing
Provides practical examples throughout the course, which helps learners grasp the concepts more easily
Covers a range of topics, from the basics of parallel computing to advanced techniques, which makes it suitable for learners with varying levels of experience
Teaches how to optimize code for parallel execution, which can significantly improve performance
Requires learners to have some programming experience, which may not be suitable for complete beginners

Save this course

Save MATLAB Parallel programming on GPUs, Cores and CPUs to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in MATLAB Parallel programming on GPUs, Cores and CPUs with these activities:
Practice Basic Programming Skills
Sharpen programming skills to better grasp parallel computing techniques
Browse courses on Code Challenges
Show steps
  • Solve coding problems
  • Participate in online coding challenges
  • Build small projects
Review Core Computing Concepts
Review fundamental computing concepts to strengthen the foundation for parallel computing
Show steps
  • Go through course materials or textbooks
  • Solve practice problems
  • Discuss concepts with peers
Peer Code Review and Optimization
Engage in peer code reviews to improve understanding and identify optimization opportunities
Browse courses on Code Optimization
Show steps
  • Form study groups with peers
  • Share and exchange code
  • Review and critique code
Four other activities
Expand to see all activities and additional details
Show all seven activities
Deep Dive into GPU Parallelization Techniques
Explore advanced GPU parallelization techniques to enhance understanding of course concepts
Show steps
  • Identify suitable tutorials from recommended resources
  • Follow the tutorials to gain hands-on experience
  • Share learnings with peers or instructors
Participate in Coding Challenges
Test and refine concepts through participation in coding challenges
Browse courses on Coding Challenges
Show steps
  • Identify suitable coding challenges
  • Attempt to solve challenges
  • Review solutions and learn from others
Contribute to Open Source Libraries
Participate in open source projects to gain practical experience and contribute to the community
Browse courses on Open Source
Show steps
  • Identify suitable open source projects related to parallel computing
  • Study the project codebase and identify areas for contribution
  • Make meaningful contributions to the project
Develop a Parallel Computing Application
Create a real-world application to apply and deepen understanding of parallel computing concepts
Browse courses on GPU Programming
Show steps
  • Identify a problem or opportunity for parallel computing
  • Design and develop the application
  • Test and evaluate the performance

Career center

Learners who complete MATLAB Parallel programming on GPUs, Cores and CPUs will develop knowledge and skills that may be useful to these careers:
Machine Learning Engineer
Machine Learning Engineers are responsible for developing and deploying machine learning models. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs can help you become a successful Machine Learning Engineer. By learning how to use GPUs, Cores, and CPUs to execute code in parallel, you can improve the performance of your training models and deploy them on a larger scale.
Data Scientist
Data Scientists are responsible for collecting, cleaning, analyzing, and interpreting large datasets. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs can help you become a successful Data Scientist. By learning how to use GPUs, Cores, and CPUs to execute code in parallel, you can improve the performance of your programs.
Computer Scientist
Computer Scientists are responsible for researching and developing new computer technologies. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs can help you become a successful Computer Scientist. By learning how to use GPUs, Cores, and CPUs to execute code in parallel, you can develop more efficient algorithms and applications.
Software Engineer
Software Engineers are responsible for designing, developing, and maintaining software applications. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs can help you become a successful Software Engineer. By learning how to use GPUs, Cores, and CPUs to execute code in parallel, you can improve the performance of your applications.
Financial Analyst
Financial Analysts are responsible for analyzing financial data and making recommendations to investors. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs can help you become a successful Financial Analyst. By learning how to use GPUs, Cores, and CPUs to execute code in parallel, you can improve the performance of your financial models and make better investment decisions.
Actuary
Actuaries are responsible for assessing and managing financial risk. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs can help you become a successful Actuary. By learning how to use GPUs, Cores, and CPUs to execute code in parallel, you can improve the performance of your risk models and make better decisions.
Operations Research Analyst
Operations Research Analysts are responsible for developing and applying mathematical models to solve business problems. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs can help you become a successful Operations Research Analyst. By learning how to use GPUs, Cores, and CPUs to execute code in parallel, you can improve the performance of your optimization models and make better decisions.
Data Analyst
Data Analysts are responsible for collecting, cleaning, analyzing, and interpreting data. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs can help you become a successful Data Analyst. By learning how to use GPUs, Cores, and CPUs to execute code in parallel, you can improve the performance of your data analysis tasks and generate insights faster.
Quantitative Analyst
Quantitative Analysts are responsible for using mathematical and statistical models to analyze financial data. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs can help you become a successful Quantitative Analyst. By learning how to use GPUs, Cores, and CPUs to execute code in parallel, you can improve the performance of your financial models and make better investment decisions.
Business Analyst
Business Analysts are responsible for analyzing business processes and developing solutions to improve efficiency. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs can help you become a successful Business Analyst. By learning how to use GPUs, Cores, and CPUs to execute code in parallel, you can improve the performance of your data analysis tasks and generate insights faster.
Computer Support Specialist
Computer Support Specialists are responsible for providing technical support to computer users. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs may be useful for Computer Support Specialists who need to support users who use parallel computing.
Database Administrator
Database Administrators are responsible for managing and maintaining databases. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs may be useful for Database Administrators who need to manage databases that are used for parallel computing.
Network Administrator
Network Administrators are responsible for managing and maintaining computer networks. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs may be useful for Network Administrators who need to manage networks that are used for parallel computing.
Systems Analyst
Systems Analysts are responsible for analyzing and designing computer systems. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs may be useful for Systems Analysts who need to design systems that use parallel computing.
Project Manager
Project Managers are responsible for planning, executing, and controlling projects. The skills learned in MATLAB Parallel programming on GPUs, Cores and CPUs may be useful for Project Managers who need to manage projects that involve parallel computing.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in MATLAB Parallel programming on GPUs, Cores and CPUs.
Provides a comprehensive introduction to deep learning. It covers the basics of deep learning, including how to create and train deep learning models. The book also covers more advanced topics, such as convolutional neural networks, recurrent neural networks, and generative adversarial networks.
Provides a more advanced treatment of parallel programming with MATLAB. It covers topics such as distributed memory programming, message passing, and GPU programming. The book also includes a number of case studies that demonstrate how to use parallel programming to solve real-world problems.
Provides a comprehensive introduction to data science. It covers the basics of data science, including how to collect, clean, and analyze data. The book also covers more advanced topics, such as machine learning, deep learning, and natural language processing.
Provides a comprehensive introduction to the mathematics of machine learning. It covers the basics of linear algebra, calculus, probability, and statistics. The book also covers more advanced topics, such as optimization, Bayesian inference, and reinforcement learning.
Provides a comprehensive introduction to convex optimization. It covers the basics of convex optimization, including how to formulate convex optimization problems. The book also covers more advanced topics, such as interior-point methods and second-order cone programming.
Provides a comprehensive introduction to machine learning from a probabilistic perspective. It covers the basics of machine learning, including how to create and train machine learning models. The book also covers more advanced topics, such as Bayesian inference, graphical models, and reinforcement learning.
Provides a comprehensive introduction to pattern recognition and machine learning. It covers the basics of pattern recognition and machine learning, including how to create and train machine learning models. The book also covers more advanced topics, such as support vector machines, decision trees, and ensemble methods.
Provides a comprehensive introduction to reinforcement learning. It covers the basics of reinforcement learning, including how to create and train reinforcement learning models. The book also covers more advanced topics, such as Markov decision processes, temporal difference learning, and deep reinforcement learning.
Provides a comprehensive introduction to computer vision. It covers the basics of computer vision, including how to process images and videos. The book also covers more advanced topics, such as object detection, image segmentation, and facial recognition.
Provides a comprehensive introduction to natural language processing with Python. It covers the basics of natural language processing, including how to process text data. The book also covers more advanced topics, such as machine translation, text classification, and information retrieval.
Provides a comprehensive introduction to speech and language processing. It covers the basics of speech and language processing, including how to process audio data. The book also covers more advanced topics, such as speech recognition, natural language understanding, and dialogue systems.
Provides a comprehensive introduction to deep learning with MATLAB. It covers the basics of deep learning, including how to create and train deep learning models. The book also covers more advanced topics, such as convolutional neural networks, recurrent neural networks, and generative adversarial networks.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to MATLAB Parallel programming on GPUs, Cores and CPUs.
Getting Started with Python 3 Concurrency
Most relevant
Introduction to Parallel Programming with CUDA
Intro to Parallel Programming
CUDA at Scale for the Enterprise
Create Your First Multithreaded Application in Java
Create a 3D multi-player game using THREE.js and Socket.IO
Introduction to GPU computing with CUDA
Learn Parallel Programming with C# and .NET
Advanced Data and Stream Processing with Microsoft TPL...
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser