ExitCertified Training Training with Java Solaris Red Hat IBM Symantec Siebel PeopleSoft Certified
 
Start Training Courses and Schedules Training Savings IT Certification Training Solutions
Training Search
Trust Your IT Training   |
Oracle University Awards ExitCertified Corporation with North American Partner of the Year.

Email Training Course

NCT-100: Programming Multicore Processors

Format: Instructor-Led Classroom
Other Formats:
 
 

This course covers concepts and approaches related to programming multicore processors in C/C++. From recognizing parallelism opportunities, to multithreaded programming and designing multithreaded algorithms, this course teaches you how to deal with the many aspects of synchronization, multithreading libraries, processor caches, shared memory and specialized methods for multithreaded programming using modern approaches such as OpenMP and Intel Threading Building Blocks.


A comprehensive training workshop: This course offers an in-depth overview of fundamental concepts while offering advanced training and practical advice on C/C++ programming of multicore processors using modern methods.
Gain critical insights on how to improve your software's performance: This course is designed to give you key skills and using specialized tools to help you to correctly architect, design and develop efficient parallel applications for multicore processors.
Additional hands-on learning: This course provides laboratory sessions in writing and debugging multithreaded programs and excercises on practical parallelization of legacy software. It also includes walk-through laboratory exercises designed to increase your understanding of multithreading.


 
 

Skills Gained

 
  • In-depth theoretical background covering multicore processor architecture, concurrent programming, parallel programming concepts and considerations.

  • Critical concepts such as implicit and explicit parallelism, atomicity, synchronization, shared memory, cache coherency, Ahmdal's Law, Flynn's processor classifications and Little's law are covered in-depth.

  • Recognize the best parallelism opportunities and explain the advantages of using threads to obtain concurrency using various analysis techniques, compositional approaches and parallel design patterns.

  • How to avoid synchronization pitfalls such as starvation, deadlock, live lock and data races.

  • How to implement and tune parallel algorithms.

  • Define and use different synchronization methods effectively including mutexes/critical sections and conditional variables.

 
  • Explain operating system interactions and the relationship between shared memory and threads.

  • Explain what aspects of the operating system affect programming, how to deal with shared memory effectively, CPU selection, CPU-specific binding of threads, thread specific data and kernel-level scheduling.

  • Understand and use threads with specific technologies and programming methods such as the Windows API, POSIX Pthreads, Intel TBB and OpenMP using C/C++ and the Intel Compiler

  • Hands on experience with the Intel Compiler to build and run multithreaded programs during the hands-on learning laboratories and case studies.

  • Best practices to deal with MT-unsafe libraries and how to write new thread-safe libraries.

Who Can Benefit

  Software architects, software developers, software team leaders and managers seeking to understand and implement efficient software running multicore processors. Knowledge of the C++ programming language and C++ software development experience is a pre-requisite for this course.

About nCore

  nCore Design,LLC develops high performance software for multicore processors and embedded systems. Currently focusing on concurrent software for mobile technologies, IPTV set-top box operating systems, high performance video storage file systems, online gaming engines, and transaction execution engine systems. nCore has experience on a wide variety of Unix platforms and specialized knowledge of applied optimization techniques using advanced compilers. nCore is based in Japan and works with local partners to bring advanced solutions to Japanese and multinational technology companies.
 
Enroll For This Class
Enroll For This Class
Training Class Enrollment Ask A Question About This Training
Code: NCT-100
Format: Instructor-Led Classroom
Length: 3 days
Certified By: Specialized
Tuition (USD): $2,495
Browse Similar Training Classes
Related training classes

Sort Schedule By: 
No Course Dates There are currently no scheduled dates for this course. If you are interested in this course, request a course date with the links below. We can also contact you when the course is scheduled in your area.
   
Request course date Request Course On-Site
 

NCT-100: Programming Multicore Processors Content Details

 
 
Schedule - Day One
Part One
  • Introduction
  • Motivation — The march to multicore
  • Architecture — parallelism, processors, shared memory, Little’s law, Flynn’s classification
  • Concurrent programming — synchronization, atomicity, dead locks and data races
  • Parallel programming concepts — shared and distributed memory, STM, performance, scalability & granularity vs. performance, Amdhal, examples
  • Programming considerations — parallel analysis, decomposition, guidelines, re-engineering
Part Two
  • Multicore computers — architecture, SMT, memory, caches
  • Multicore computers — programming, affinity, process migration, kernel scheduler
  • Shared memory programming in C++
  • — Issues
  • — Solutions
  • — Tools
  • Introduction to OpenMP
  • Exercise: Parallelization of an application using OpenMP
Schedule - Day Two
Part One
  • Multithreading APIs (Windows/POSIX/TBB)
  • Creation and destruction
  • Exercise: Creation of N threads
  • Synchronization — API comparison and C++
  • Exercise: Synchronization using a mutex
  • Exercise: Synchronization using a conditional variable
  • Case Studies — Dead lock and starvation
  • Private thread data
 
Part Two
  • Thread unsafe APIs
  • — STL
  • — Thread safe wrappers
  • — Exercise: Asynchronous queue
  • Exercise: Producer consumer
  • Exercise: Parallelization of an independent application using N threads
  • Comparison with OpenMP version
Schedule - Day Three
Part One
  • Reader Writer — description and implementation
  • Exercise: Implementation and test
  • Application: multi-thread efficient memory allocator
  • Pipeline — description and implementation
  • Exercise: Implementation and test
Part Two
  • Thread pool
  • — Exercise: implementation and test
  • Lock free algorithms
  • — Exercise: implement a producer
  • — Consumer using the previous asynchronous queue and a provided lock
  • — Free queue
  • Multicore performance
  • Case study — program with shared data
  • Relevant Tools
  • Profilers, debuggers, Intel thread checker


  ExitCertified Training with Java Solaris Red Hat IBM Symantec Apple MySQL Siebel PeopleSoft  
  When you take a certified course with ExitCertified, you are learning from the creators of the products you use. Our commitment to your IT community, along with our authorization to deliver certified courses, ensures you receive a premium training experience.

There is a difference. Learn from the source.
 
     
Training Contacts    
     
Spotlight Centers All United States Training Centers
Sacramento Training :: 916.669.3970
San Francisco Training :: 415.975.3948
San Jose Training :: 408.288.3948
Las Vegas Training :: 1.800.803.3948
Phoenix Training :: 602.889.9350
New York Training
Chicago Training
Los Angeles Training
Atlanta Training
Washington Training

Denver Training
Boston Training
Dallas Training
Houston Training
Philadelphia Training
View All US Training Centers
     
Worldwide and All US Cities:
408.288.3948
Got Questions?
We are happy to help. Just email us with this form and we'll get back to you shortly.
   



(c) 2009 ExitCertified Corp. All rights reserved.


ExitCertified is a global provider of authorized technology training. Some of our popular course topic include:
 
Sun Microsystems Training Oracle Training Symantec Training IBM Training Red Hat - Linux Training
Java Training, J2EE Training, JSP Training, Java Courses, Servlets Training, EJB Training, Struts Training, Networking Courses, Solaris Training, Java Composite Application Platform (JCAPS) Training, Java Certification, SeeBeyond Training, XML Training, Solaris Certification, Corporate Training PeopleSoft Training, 11g Training, 11g Certification, Oracle SQL, Oracle PL/SQL, DBA Training, Oracle Certification, Hyperion Training, Fusion Middleware Training, 10g Training, Siebel Training, JD Edwards Training, Stellent Class, BEA Courses, e-Business Suite NetBackup Training, Veritas Training, Symantec Certification, Virus Protection Courses, IT Security Training DB2 Training, Cognos Classes, WebSphere Training, CICS Training, Informix, Rational Training, Lotus, Notes and Domino Training, Tivoli Courses, AIX Class, CISCO Training, VMWare Training SUSE Training, RedHat Course , JBoss Class
         
MySQL Training Apple Training Hitachi - HDS Training Project Management PMI Training  
  Apple Course, Leopard Training, Xsan Training