TheArtOfConcurrency 2018 程序啪啪啪
TheArtOfConcurrency
背景
- 基本概念
- 并发
- 相同的工作同时运行
- 并行
- 不同类的工作一齐运行
- 并发
- 主要问题
- 任务划分与分配
- 负载均衡
- 分发与合并的开销与损耗
- 数据共享
- 并发与独占
- 读与写
- Tools
- 锁(资源共享)
- 信号量(线程同步)
- 任务划分与分配
- Steps
- Analysis:Find the concurrency
- Design&Implement:Thread model & algorithm
- Test
- Performance
- Egs
- False Sharing
- Bus Overload
- Egs
- Model
- PRAM(Parallel Random Access Machine)
Todo
- DesignModel
- Task Decomposition
- Granularity粒度
- Coarse粗
- Fine细
- Dependency依赖
- Order
- Data
- Scheduling调度
- Dynamic
- Static
- Granularity粒度
- Data Decomposition
- Cell
- Task Decomposition
- Steps
- Performance
- 简单
- 可移植
- 可伸缩
- Can't
- Algorithm With status
- 递推
- 归纳Induction Variable
- 归约Reduction
- Loop-Carried-Dependence
MultiThreadsDesignRules
- 找出真正独立的运算
- 在尽可能高的层次上实现并发
- 尽早考虑通过增加处理器核的数量来获得可伸缩性
- 尽可能使用线程安全的库
- MTK
- IPP
- 使用正确的线程模型
- Library
- Framework
- OpenMP
- Interl Threading Building block
- 永远不要假设程序会按照某种特定的顺序运行
- 尽可能使用线程局部存储或与特定数据相关的锁
- BraveToRefactorCodeToGetPerformance
ThreadingFrameworks
- OpenMP
- Interl Threading Building Blocks
- Erlang
- OpenMPI
- PThreads
Tools
- Debug
- dbg
- dbx
- VTune(Checker)
- Performance
- gprof
- VTune
tags: Concurrency Rules Threads
文章目录 |
创建@
2012-12-09
最后修改@
2012-12-10