Training

Popular Courses

Browse Our Free Resources

  • whitepapers
  • whitepapers
  • webinars
  • blogs

Our Locations

Training Centres

Vancouver, BC
Calgary, AB
Edmonton, AB
Toronto, ON
Ottawa, ON
Montreal, QC
Hunt Valley
Columbia

locations map

Calgary

550 6th Av SW
Suite 475
Calgary, AB
T2P 0S2

Toronto

439 University Av
Suite 820
Toronto, ON
M5G 1Y8

Vancouver

409 Granville St
Suite 902
Vancouver, BC
V6C 1T2

U.S. Office

436 York Road
Suite 1
Jenkintown, PA
19046

Other Locations

Dallas, TX
Miami, FL

 

Home > Training > C / C++ >

WA1897 Parallel Programming for Multi-Core Systems: C++ Edition Training and Courseware (Coming Soon)

According to Moore's law, the number of transistors that can be placed inexpensively in a single Integrated Circuit doubles every two years. Chip makes are taking advantage of this trend in miniaturization by creating multi-core CPUs. Parallel computing has become necessary to take advantage of these new CPU desigtn and Moore's law in general.

Objectives

Multiple CPU configuration or multiprocessing is not new. This has been done for many years in the server side. Server type software, such as web server and database server are coded to take advantage of multiprocessing. Now, the demand for multiprocessing has come down to the desktop. Previously, only a handful of senior developers could write reliable and error free multiprocessing code. Now, regular developers developing for desktop will be asked to develop such applications. Since the speed of individual CPU is becoming limited, the proper way to write heavy duty desktop applications, such as high definition video editing and intense gaming, will be to take advantage of multiprocessing.

This course is intended to empower intermediate to senior Windows C++ developers to devise parallel algorithm to solve compute intensive tasks and implement these algorithms using Java.

First, the course establishes what multiprocessing is and how that differs from hyperthreading and multi-threading in a single CPU configuration. A set of common parallel computing patterns are then discussed. These patterns are programming language neutral and can be used to create plans for parallelizing intensive tasks.

The basic multithreading API of Win64 is discussed. Students are shown how to implement some of the multiprocessing patterns. Next, the C++ concurrency library is discussed. This library provides a higher level abstraction over Win64. Then, the parallel programming framework of .NET 4 is discussed.

Finally, a number of multi-processing frameworks are discussed. In many cases, using a framework can speedup development and produce more robust results. The following frameworks are discussed:

  1. Intel Ct
  2. Intel Cilk
  3. Thread Building Block (TBB)

Topics Covered

  • Introduction to multi-core programming
  • Patterns of parallel computing
  • Basic multi-threading in Java
  • Advanced multi-threading in Java
  • Concurrency utility in Java (JSR 166).
  • Parallel computing frameworks – Apache Hadoop, DataRush and JPFF

Audience

Intermediate and advanced Java programmers who will develop computation intensive desktop applications – such as, business intelligence, reporting and data mining.

Prerequisites

Students should have good knowledge of Java. Understanding of the threading API is recommended but not necessary.

Duration

2 days.

Course Outline

Coming soon

We regularly offer classes in these and other cities. Atlanta, Austin, Baltimore, Calgary, Chicago, Cleveland, Dallas, Denver, Detroit, Houston, Jacksonville, Miami, Montreal, New York City, Orlando, Ottawa, Philadelphia, Phoenix, Pittsburgh, Seattle, Toronto, Vancouver, Washington DC.
Outline Course Outline

Buy on-site and customized class

*Your name:

*Your e-mail:

*Phone:

*Company name:

Additional notes:

We have received your message. A sales representative will contact you soon.

Thank you!.