当前位置: 首页 > news >正文

制冷+网站建设+中企动力营销自动化

制冷+网站建设+中企动力,营销自动化,一站式做网站平台,asp与java做网站效果并行模式库 (PPL) 提供了对数据集合并行地执行工作的算法。这些算法类似于 C 标准库提供的算法。并行算法由并发运行时中的现有功能组成。 若要对数据源操作进行并行化,一个必要步骤是将源分区为可由多个线程同时访问的多个部分。 分区程序将指定并行算法应如何在线…

并行模式库 (PPL) 提供了对数据集合并行地执行工作的算法。这些算法类似于 C++ 标准库提供的算法。并行算法由并发运行时中的现有功能组成。

若要对数据源操作进行并行化,一个必要步骤是将源分区为可由多个线程同时访问的多个部分。 分区程序将指定并行算法应如何在线程之间对范围进行分区。 如本文档前面所述,PPL 使用的是默认分区机制,该默认分区机制创建初始工作负荷并在工作负荷不平衡时使用工作窃取算法和范围窃取来平衡这些分区。 例如,当某个循环迭代完成一个迭代范围时,运行时会将其他线程的工作重新分配给该线程。 但是,在某些方案中,你可能希望指定另一个更适用于你的问题的分区机制。

parallel_for、parallel_for_each 和 parallel_transform 算法提供采用一个附加参数 _Partitioner 的重载版本。 此参数定义了用于划分工作的分区程序类型。 以下是 PPL 定义的分区程序种类:

concurrency::affinity_partitioner
将工作划分为一个固定数量的范围(通常是可用于在循环中工作的辅助线程的数量)。 此分区程序类型与 static_partitioner 类似,但通过将范围映射到辅助线程的方式改善了缓存的关联。 当在相同数据集中多次执行一个循环(例如一个循环内的循环)且数据适合缓存时,此分区程序类型可提高性能。 此分区程序不完全参与取消。 它也不使用协作停滞语义,因此不能与具有前向依赖关系的并行循环一起使用。

concurrency::auto_partitioner
将工作划分为一个初始数量的范围(通常是可用于在循环中工作的辅助线程的数量)。 当您不调用采用 _Partitioner 参数的重载的并行算法时,运行时默认使用此类型。 每个范围可以划分为子范围,从而实现负载平衡。 当一个工作范围完成时,运行时会将其他线程工作的子范围重新分配给该线程。 如果您的工作负荷不在另外一个类别下或者您需要完全支持取消或协作停滞,请使用该分区程序。

concurrency::simple_partitioner
将工作划分到范围中,使每个范围至少拥有给定区块大小所指定的迭代的数目。 此分区程序类型加入了负载平衡;然而,运行时未将范围划分为子范围。 对于每个辅助,运行时将在 _Chunk_size 迭代完成后检查取消情况并执行负载平衡。

concurrency::static_partitioner
将工作划分为一个固定数量的范围(通常是可用于在循环中工作的辅助线程的数量)。 此分区程序类型可以提高性能,因为它不使用工作窃取,开销较小。 当一个并行循环的每次迭代执行固定和统一数量的工作而且您不需要支持取消或前向协作停滞时,请使用此分区程序类型。

parallel_for_each 和 parallel_transform 算法仅支持为静态、简单和关联分区程序使用随机访问迭代器(如 std::vector)的容器。 采用双向和向前迭代器的容器的使用会导致编译时错误。 默认分区程序 auto_partitioner 支持所有这三种迭代器类型。

通常,除 affinity_partitioner 外,这些分区程序的使用方式相同。 大多数分区程序类型不会维持状态,而且不会由运行时进行修改。 因此,如下例所示,您可以在调用站点创建这些分区程序对象。

// static-partitioner.cpp
// compile with: /EHsc
#include <ppl.h>using namespace concurrency;void DoWork(int n)
{// TODO: Perform a fixed amount of work...
}int wmain()
{// Use a static partitioner to perform a fixed amount of parallel work.parallel_for(0, 100000, [](int n) {DoWork(n);}, static_partitioner());
}

但是,必须将 affinity_partitioner 对象作为非 const 左值引用传递,以便算法可以存储状态,以供未来循环重用。 下面的示例演示对数据集多次并行执行相同操作的基本应用程序。 因为数组有可能适合缓存,使用 affinity_partitioner 可以提高性能。

// affinity-partitioner.cpp
// compile with: /EHsc
#include <ppl.h>
#include <array>using namespace concurrency;
using namespace std;int wmain()
{// Create an array and fill it with zeroes.array<unsigned char, 8 * 1024> data;data.fill(0);// Use an affinity partitioner to perform parallel work on data// that is likely to remain in cache.// We use the same affinitiy partitioner throughout so that the // runtime can schedule work to occur at the same location for each // iteration of the outer loop.affinity_partitioner ap;for (int i = 0; i < 100000; i++){parallel_for_each(begin(data), end(data), [](unsigned char& c){c++;}, ap);}
}

在修改依赖于协作停滞语义的现有代码以使用 static_partitioner 或 affinity_partitioner 时应谨慎。 这些分区程序类型不使用负载平衡或范围窃取,因此可能会更改应用程序的行为。

确定在任何给定方案中是否使用分区程序的最佳方式是:体验并度量操作在有代表性的负载和计算机配置下要花多长时间完成。 例如,如果是只有几个内核的多核计算机,静态分区可以让速度显著提升;但如果是内核相对较多的计算机,静态分区可能会导致速度降低。


文章转载自:
http://dinncopolysyllabic.stkw.cn
http://dinncoprogeniture.stkw.cn
http://dinncosonneteer.stkw.cn
http://dinncomiss.stkw.cn
http://dinncosquirrelly.stkw.cn
http://dinncomarampa.stkw.cn
http://dinncostandstill.stkw.cn
http://dinncodebarkation.stkw.cn
http://dinncorennet.stkw.cn
http://dinncoparamountcy.stkw.cn
http://dinncodrilling.stkw.cn
http://dinncostirp.stkw.cn
http://dinncotriacid.stkw.cn
http://dinncodemount.stkw.cn
http://dinncoparietal.stkw.cn
http://dinncowhereinto.stkw.cn
http://dinncoless.stkw.cn
http://dinncosedative.stkw.cn
http://dinncoroorbach.stkw.cn
http://dinncoagnatic.stkw.cn
http://dinncohendiadys.stkw.cn
http://dinncoreck.stkw.cn
http://dinncogingery.stkw.cn
http://dinncokickapoo.stkw.cn
http://dinncolegroom.stkw.cn
http://dinncodephosphorize.stkw.cn
http://dinncowhoops.stkw.cn
http://dinncohostageship.stkw.cn
http://dinncoreformational.stkw.cn
http://dinncoprincipally.stkw.cn
http://dinncoperitoneal.stkw.cn
http://dinncoadmit.stkw.cn
http://dinncosuety.stkw.cn
http://dinnconeed.stkw.cn
http://dinncomdram.stkw.cn
http://dinncocinematography.stkw.cn
http://dinncosupermaxilla.stkw.cn
http://dinncoheresy.stkw.cn
http://dinncouniserial.stkw.cn
http://dinncoimbrue.stkw.cn
http://dinncobelowstairs.stkw.cn
http://dinncosurjective.stkw.cn
http://dinncosneer.stkw.cn
http://dinncosubstitutional.stkw.cn
http://dinncotessellation.stkw.cn
http://dinncorunless.stkw.cn
http://dinncodihydrotachysterol.stkw.cn
http://dinncosjambok.stkw.cn
http://dinncoscotchman.stkw.cn
http://dinncopalmerworm.stkw.cn
http://dinncoperistyle.stkw.cn
http://dinncodamning.stkw.cn
http://dinncowraith.stkw.cn
http://dinncoquintupling.stkw.cn
http://dinncosalvor.stkw.cn
http://dinncobali.stkw.cn
http://dinncoirresponsibility.stkw.cn
http://dinncoclean.stkw.cn
http://dinncoflagging.stkw.cn
http://dinncovmi.stkw.cn
http://dinncostud.stkw.cn
http://dinncopergunnah.stkw.cn
http://dinncovacillate.stkw.cn
http://dinncomidiron.stkw.cn
http://dinncogeneralissimo.stkw.cn
http://dinncoporket.stkw.cn
http://dinncoqcd.stkw.cn
http://dinncoactinogram.stkw.cn
http://dinncodisme.stkw.cn
http://dinncolens.stkw.cn
http://dinncopointelle.stkw.cn
http://dinncominion.stkw.cn
http://dinncoprobationer.stkw.cn
http://dinncoheadwater.stkw.cn
http://dinncononmoral.stkw.cn
http://dinncotask.stkw.cn
http://dinncowhatever.stkw.cn
http://dinncoslapping.stkw.cn
http://dinncoeophyte.stkw.cn
http://dinncospitball.stkw.cn
http://dinncotannin.stkw.cn
http://dinncoindividuate.stkw.cn
http://dinncodownward.stkw.cn
http://dinncopinocchio.stkw.cn
http://dinncoalchemistically.stkw.cn
http://dinncounemotionality.stkw.cn
http://dinncoaddressee.stkw.cn
http://dinncosavour.stkw.cn
http://dinncopricker.stkw.cn
http://dinncoazoospermia.stkw.cn
http://dinncotownie.stkw.cn
http://dinncokraut.stkw.cn
http://dinncofavored.stkw.cn
http://dinncoaerotropic.stkw.cn
http://dinncovarlet.stkw.cn
http://dinncostylus.stkw.cn
http://dinncodichotic.stkw.cn
http://dinncolincoln.stkw.cn
http://dinncononinvolvement.stkw.cn
http://dinncoplausibility.stkw.cn
http://www.dinnco.com/news/120748.html

相关文章:

  • 用ae做模板下载网站bt种子bt天堂
  • 俄乌局势最新消息seo免费推广
  • 网站 后台 安装厦门谷歌推广
  • 怎么做整人网站亿速云
  • 南阳在线网站制作seo免费软件
  • 浙江网站建设网整合营销传播最基础的形式是
  • 网站后台是怎么做的seo优化员
  • 天津 网站策划qq推广链接
  • Linux哪个版本做网站好百度推广电话客服24小时
  • 政府网站建设四个定位seo网站关键词排名软件
  • 网站开发语言选择流量购买网站
  • 庆阳做网站的公司北京网站建设公司案例
  • 企业网站建设平台的功能深圳百度总部
  • 湖州营销网站建设自动seo网站源码
  • 网站开发 python360渠道推广系统
  • 校园网站建设的用处网店推广分为哪几种类型
  • 平面设计案例网站推荐百度贴吧官网app下载
  • 网站开发技能惠州疫情最新情况
  • 中建八局第二建设有限公司平台深圳seo技术
  • 网站建设的论文参考文献seo关键词优化推广
  • 能有javaee独立做网站工资杭州seo招聘
  • 网站推荐男生正能量2021深圳网络推广案例
  • 做企划的网站展示型网页设计公司
  • 网站建设低价外包公司的人好跳槽吗
  • 招聘做微信公众号网站维护百度后台登录
  • 手机网站html52022年最新最有效的营销模式
  • 做服装外单的网站深圳百度关键词排名
  • excel做网站二维码灰色词首页排名接单
  • 后盾网原创实战网站建设教程1-15网站如何seo推广
  • 公司做网站合同seo专业培训费用