尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

【信息科学与工程学】计算机科学与自动化—第十五篇云计算 11 算法篇02

【信息科学与工程学】计算机科学与自动化—第十五篇云计算 11 算法篇02 205. 多核CPU时间片调度(Gang Scheduling for Multithreaded Apps)类型:多核协同调度领域:高性能计算 / 对称多线程应用问题:将一个多线程应用的多个线程同时调度到多个核心上运行,避免部分线程运行时其他线程被换出导致的同步开销数学分析:第一步:Gang调度模型。应用有 T 个线程,系统有 P 个核心。Gang调度要求同一应用的线程要么全部运行,要么全部等待。设时间片长度 Q,应用 i 的线程数 Ti​,周期 Pi​。第二步:调度开销。若线程不同时运行,频繁的锁等待和上下文切换会增加开销。设不同步运行时的额外开销比例 Oasync​,Gang调度可消除此开销。第三步:时间片分配。系统将时间划分为槽(slot),每个槽分配给一个应用的所有线程。设应用 i 的权重 wi​,每个周期内分配的时间槽数 Ni​=⌊∑wj​wi​​⋅QPi​​⌋。第四步:数学模型。设应用 i 的计算需求 Ci​,周期 Pi​,Gang调度下的完成时间 Tgang​=Ti​Ci​​⋅Ti​P​(假设 P≥Ti​)。非Gang调度下,由于线程不同步,完成时间可能增加 1+Oasync​ 倍。第五步:数值分析。假设 P=16,应用有8个线程,计算需求100ms,周期200ms。Gang调度下,应用独占8个核心,100ms完成。非Gang调度下,若线程被其他应用干扰,可能需150ms,增加50%。算法分析
返回列表