Questions tagged «dc.parallel-comp»

并行计算中的理论问题


3
可以使用具有数据并行运算符的全部功能语言来表示哪些算法?
想象一下一种函数式编程语言,其唯一的数据类型是数字标量和数组的任意嵌套。该语言缺乏任何无限迭代的方式,因此不允许以下内容: 显式循环(无论如何,没有副作用的使用很少) 递归 任意一等函数(无y组合器) 但是,该语言具有: 顶级功能 词法范围的let绑定 分支控制流程 常见的标量数学和逻辑函数 一些简单的数组构造函数,例如fill(n,x),它创建一个具有x相同值的n元素数组 最重要的是:执行并行结构化迭代(例如映射,归约,扫描,所有对)的一组受限的高阶运算符。 更具体地讲数据并行运算符: y = map(f,x)=> y [i] = f [i] y = reduce(f,a,x)=> y = f(a,f(y [p [0]],f(y [p [1 []],...)))) y = scan(f,a,x)=> y [i] = reduce(f,a,y [0 ... i-1]) y = allpairs(f,x,y)=> y [i,j] = f(x [i],y [j]) …

1
确定性伪随机性可能比并行性强吗?
让类BPNC(和)是具有有限错误概率并可以访问随机源的对数深度并行算法(我不确定这是否具有不同的名称)。类似地定义类DBPNC,不同之处在于所有进程都可以随机访问算法启动时固定的随机位流。N C乙P P乙PP\mathsf{BPP}氮碳ñC\mathsf{NC} 换句话说,BPNC中的每个进程都可以访问不同的随机源,而DBPNC算法具有共享的完全随机计数器模式生成器。 我们是否知道BPNC = DBPNC?

3
关于并行化的介绍性注释,特别是问题和算法的模式
我正在寻找在线可用的讲义或其他资源,它们对并行编程有很好的介绍,就像计算机科学中的基础类的并行模拟一样。 我的重点是以下几点:虽然我能够谈论分而治之,贪婪算法,动态编程等,即顺序算法(和问题)的基本模式,但是我没有合适的语言对并行算法中的方法进行分类。 例如,我想获得适当的用语来表达以下事实:对以下每个问题的明显并行处理具有不同的定性行为: 将整数数组设置为全零(完美缩放)。 对整数数组求和(使用的线程越多,开销越大。) 给定一个数组,将每个条目的乘积彼此列出(如果我们将规范的double-for循环并行化,则运行时间将缩放为数字处理器的sqrt。) 共享内存环境就足够了,进程间通信对我而言并不那么重要(实际上,我对完全避免这种情况的算法很感兴趣)。此外,技术方面对我来说是微不足道的。

1
实用的多字比较和交换操作
在标题与此问题的标题相同的论文中,作者描述了如何仅使用单个单词CAS 来构建无阻塞 线性化 多单词CAS运算。他们首先介绍了双比较单交换操作RDCSS,如下所示: word_t RDCSS(RDCSSDescriptor_t *d) { do { r = CAS1(d->a2, d->o2, d); if (IsDescriptor(r)) Complete(r); } while (IsDescriptor(r)); if (r == d->o2) Complete(d); // !! return r; } void Complete(RDCSSDescriptor_t *d) { v = *(d->a1); if (v == d->o1) CAS1(d->a2, d, d->n2); else CAS1(d->a2, d, d->o2); } …

1
哪些机器学习分类器最可并行化?
哪些机器学习分类器最可并行化?如果您遇到困难的分类问题,有限的时间,但是要使用一个不错的计算机局域网,那么您将尝试使用哪些分类器? 从旁看来,我看起来像一些我所知道的标准分类器,但我可能完全错了: 随机森林-高度并行化,只要每台机器都可以保存所有数据(即本身不能分割训练数据,但可以并行化)。 提升-? 支持向量机-不可并行化。 决策树-可以部分分解,但效率不高。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.