وب سایت تخصصی شرکت فرین
دسته بندی دوره ها
2

C++ Concurrency : C++ Atomics and memory model Deep Dive

سرفصل های دوره

C++ Memory model, concurreny, multithreading, performance, modern C++, C++11/14/17/20, gdb, valgrind, C++ atomics


1. Introduction
  • 1. Introduction
  • 2. C++ Memory Model from standard to production

  • 2. Modern C++ Memory Model Closer look
  • 1. Memory Model guarantees
  • 2. External factors affecting the program execution workflow of a C++ program
  • 3. Sequential conisistency definition in multithreaded applications
  • 4. Race condition in concurrency with regard to sequential consistency
  • 5. SC-DRF Sequential Concistency (Data Race Free)
  • 6. Role of Modern C++ memory model in guarantee of SC-DRF

  • 3. Code Optimizations Behind the scenes
  • 1. Simple optimization example
  • 2. Code walkthrough of issue with the concurrent execution of multithreaded code
  • 3. Optimization example with single threaded code
  • 4. Summary and general tips around optimization of concurrent code in modern C++

  • 4. Concurrency and barriers
  • 1. Thinking in Transactions
  • 2. The concept of critical section in concurrent and multithreaded applications
  • 3. Concurrency considerations while moving code out of critical sections
  • 4. Concurrency considerations while moving code inside of critical sections
  • 5. Concept of acquire and release barriers in concurrency memory models
  • 6. Considerations while choosing memory barriers while desiging for multithreading
  • 7. A closer look at barriers and their relation to sequential consistency
  • 8. Summary of memory barriers in concurrent applications
  • 9. Impact of external optimizations on concurreny in modern C++ applications

  • 5. Performance analysis of atomics data types in modern C++
  • 1. Considerations while making performace measurements
  • 2. Code experiment recommended to be performed by students.
  • 3. Code demonstartion of behavoir of atomic variables in practice
  • 4. Do atomic variables wait for each other
  • 5. False sharing in concurrency and multithreading

  • 6. Compare and Swap in Modern C++
  • 1. Introduction to compare and swap
  • 2. Example of compare and swap
  • 3. Pseudo code implementation of compare and exchange strong
  • 4. Pseudo code implementation of compare exchange strong - faster
  • 5. Compare and exchange weak - reason for spurios failures

  • 7. Memory ordering in multithreading with Modern C++ memory model
  • 1. Memory ordering basics in concurrency
  • 2. Memory ordering nuances
  • 3. Memory ordering and memory barriers in modern C++ language
  • 4. Acquire Barrier in Modern C++
  • 5. Release Barrier in Modern C++
  • 6. Using acquire and release barriers for synchronization in multithreading
  • 7. Using memory barriers as locks for efficient concurreny with modern C++
  • 8. Bidirectional barriers in Modern C++ memory model
  • 9. Why does compare and exchange in C++ have two parameters for memory ordering

  • 8. Memory order Software Design and performance cosniderations
  • 1. Purpose of memory order in modern C++ concurrency memory model
  • 2. Memory order as a tool to convey the C++ programmers intent
  • 3. Memory order as programmers intent Example - 1
  • 4. Memory order as programmers intent Example - 2
  • 5. Memory order as programmers intent Example - 3
  • 6. Memory barriers and performance implications
  • 7. Sequential consistency and performance implications
  • 8. Design and implementation guidelines for using stdatomics
  • 9. When to use the atomics provided by the modern C++

  • 9. Tools to work with concurrency and multithreading in C++ at production level
  • 1. Demo code Walkthrough of code sample being used to genreate results of tools
  • 2. top utility output from Linux machine
  • 3. htop utility output from Linux machine
  • 4. perf utility output from Linux machine
  • 5. gprof utility output from Linux machine
  • 6. Intel Vtune utility output from Linux machine
  • 7. Google Orbit utility output from Linux machine
  • 8. Heaptrack utility output from Linux machine
  • 9. Valgrind utility output from Linux machine
  • 10. pahole utility output from Linux machine
  • 11. Demonstration of false sharing in concurrent applications using modern C++
  • 12. Other tools to explore gdb, gcore, visual studio code, debugging tools
  • 13. Conclusion
  • 14. [Bonus Lecture].html
  • 139,000 تومان
    بیش از یک محصول به صورت دانلودی میخواهید؟ محصول را به سبد خرید اضافه کنید.
    افزودن به سبد خرید
    خرید دانلودی فوری

    در این روش نیاز به افزودن محصول به سبد خرید و تکمیل اطلاعات نیست و شما پس از وارد کردن ایمیل خود و طی کردن مراحل پرداخت لینک های دریافت محصولات را در ایمیل خود دریافت خواهید کرد.

    ایمیل شما:
    تولید کننده:
    شناسه: 11554
    حجم: 1042 مگابایت
    مدت زمان: 186 دقیقه
    تاریخ انتشار: ۲۰ اردیبهشت ۱۴۰۲
    طراحی سایت و خدمات سئو

    139,000 تومان
    افزودن به سبد خرید