Designing and Debugging Scaleable Multithreaded Applications
Course Code: U3715S
Length: 4 days
Schedule and Registration
This course is not currently scheduled.
Course Description
This course provides advanced training in the design, development, troubleshooting, and repair of multithreaded applications designed to run on the HP OpenVMS operating system. The course teaches how to use the standard POSIX Pthreads interface effectively through a solid understanding of the interfaces, threading models, synchronization, and scheduling. Methods to design and develop reliable, high-performance multithreaded applications are emphasized.
Common pitfalls and risks are discussed throughout, with the emphasis on designing and implementing applications correctly so as to avoid defects and performance problems in new applications, as well as detecting, analyzing, and repairing defects and problems in existing programs.
Extensive exercises and programming examples illustrate the topics covered in the course. The exercises require an understanding of multithreading design principles and an ability to troubleshoot existing programs.
Who Should Attend
Software engineers who develop and support multithreaded software applications on the hp OpenVMS operating system.
Prerequisites
Students should be able to use standard OpenVMS commands, program in ANSI standard C, use a debugger, and develop and understand basic programs using POSIX Pthreads.
Benefits of Attending this Class
Upon completion of this course, students should be able to:
- Describe program concurrency, parallelism, and synchronization and their implementation in POSIX Pthreads
- Describe the advantages and drawbacks of developing applications using POSIX Pthreads
- Design multithreaded applications to get the best performance
- Avoid, detect, and repair common multithreaded program defects
- Perform source-level debugging, profiling, and execution using facilities such as the ladebug and Visual Threads debugger
- Describe the considerations when using HP Tru64 UNIX or OpenVMS along with general portability considerations
Course Contents
Introduction to threads
- Threads and multithreading concepts
- Models for thread usage
- Additional thread challenges
- Pthreads and the POSIX threads library
Thread management essentials
- Thread management
- Introduction to visual threads
POSIX synchronization
- Synchronization motivation
- Mutexes
- Condition variables
- Memory visibility between threads
- Visual threads and synchronization
Advanced thread programming
- Attribute objects named objects
- Thread attributes
- Read-write locks
- One-time initialization
- Thread-specific data
- Thread-safe and re-entrant functions
- Two compound objects: semaphores and threshold barriers
- Visual threads and application analysis and tuning
Thread exceptions, termination and cancellation
- Thread cancellation
- Exception handling
Thread scheduling
- Scheduling
- Two-level scheduling
Threads and client/server computing
- Design of a multithreaded server
HP OpenVMS considerations
- HP OpenVMS considerations
- NUMA systems
Thread debugging and profiling
- Avoid debugging
- Profiling multithreaded applications
- Using visual threads