问题标签 [barrier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
synchronization - 一次调用可以在 glsl 计算着色器中进行乒乓传播吗?
我尝试使用 glsl 计算着色器实现 32x32x32 3D 纹理的传播方案,如果我可以只执行一次着色器来进行 x 次迭代,那就太好了。
我有 3 个纹理,一个是源,一个是目标,第三个是所有东西。每次迭代都必须交换源和目标。伪代码看起来像 OpenGL:
GLSL:
问题是由于纹理的大小,我无法在一个工作组中完成所有这些工作。它会在一个工作组中,我可以使用 barrier() 就可以了。由于纹理的交换,我需要在从下一次迭代再次读取之前更新所有值。有人知道这是否可能吗?
谢谢马克
c++ - 使用互斥量和信号量的屏障实现
这是一个面试问题:n
使用互斥锁和信号量实现线程之间的屏障。我提出的解决方案:
这个解决方案好吗?可以仅使用互斥锁来实现屏障吗?
c++ - 这里是否需要内存屏障“*pEnd_ = v; __sync_synchronize (); ++pEnd_;”?
pEnd_ 是一个对象成员,只能在一个线程中的 add() 中增加,如下所示,它可能被另一个线程读取。我们需要在 add() 中使用 __sync_synchronize 吗?
在另一个线程中迭代。
c - 监视同步线程的 C 中的源代码
我想根据以下方式制作一个同步C中n个线程的监视器:每个线程调用barrier_synch()方法。调用此方法的前 n-1 个线程休眠。当第n个线程调用该方法时,所有休眠线程都被唤醒,然后所有线程继续执行,而barrier返回初始状态。这是我找到的解决方案:
这段代码正确吗?有人能用简单的话解释一下这个机制是如何工作的吗?
c++ - 消息传递系统中的屏障是如何实现的?
我的理解是,一个主进程向所有其他进程发送消息。作为回报,所有其他进程都会向主进程发送消息。这足以成为工作障碍吗?如果没有,那还需要什么?
multithreading - 了解“将树屏障与优化唤醒相结合的软件”算法
我正在阅读这篇论文中关于屏障同步算法的伪代码,但我无法完全理解它。
代码的目标是使用称为“软件组合树”的东西为多个线程创建一个屏障(除非所有线程都完成,否则线程不能通过屏障)(不确定它的含义)
这是伪代码(尽管我鼓励你也看看这篇文章)
我知道这意味着构建二叉树,但我不明白一些事情。
- P是线程数吗?
- 什么是k?什么是“该节点的扇入”
- 文章提到线程在树的叶子上被组织成组,什么组?
- 每个线程是否只有一个节点?
- 如何获得“组合树中我组的叶子”?
c - 如何在 c 中正确使用 memalign 和 struct?
我编写了以下代码来为我的 10 个 struct barrier_t 分配一块内存,但我不断收到错误消息。这是什么意思?如何解决?非常感谢!
test2.c:19:16: 错误:预期的声明说明符或 '...' 在 '(' 标记
test2.c:19:36: 错误:预期的声明说明符或 '...' 在数字常量
test2.c 之前: 19:40:错误:预期的声明说明符或 '...' 在 '(' 标记之前
java - 正确测试线程屏障
我已经实现了一个屏障类MyBarrier,它具有单个函数wait(),调用线程必须等待,直到他的团队的所有线程都到达。我想找到一种测试线程屏障类的好方法。到目前为止,我采取了以下方法:
为了测试线程屏障,我首先创建了我的屏障对象
然后我产生了一堆线程:
作为线程生成的屏障测试函数如下:
我还创建了另一个测试函数来测试循环内的屏障
如果这些是测试线程障碍的好方法,谁能建议我?如果没有,你能建议一个万无一失的方法来测试我的屏障类吗?
注意:我的屏障类具有内置的重置功能。每当一个团队的所有线程都到达屏障(调用等待)时,其中一个线程将屏障重置为旧状态,以便它准备好被下一组线程重用
c - 屏障调用卡在 Open MPI(C 程序)中
我正在通过使用 Open MPI 消息通信来练习通过屏障进行同步。我创建了一个名为容器的结构数组。每个容器都与右边的邻居相连,两端的两个元素也相连,形成一个圆圈。
在 main() 测试客户端中,我使用多个进程 (mpiexec -n 5 ./a.out) 运行 MPI,它们应该通过调用 barrier() 函数来同步,但是,我的代码最后卡住了过程。我正在寻求调试帮助。请在下面查看我的代码:
c - C pthread_barrier 同步问题
我刚开始学习pthread_barriers
它们以及它们是如何工作的。基本上我有两个数组和两个线程,一个线程找到数组 A 的最大值,另一个找到数组 B 的最小值并将它们存储在全局变量中。他们需要在进行交易之前进行同步(A 的最大值传递给 B,B 的最小值传递给 A),这样数组 B 的所有值都比 A 高——如果你愿意的话,几乎就像一个排序问题。我不断得到非常不正确的结果,我确信我错过了一些简单的东西;
我用
A的线程代码
B的线程代码
如果我的理解是正确的,一旦两个线程都命中 pthread_barrier_wait,它们将成功同步并可以继续,对吗?我总是得到如下疯狂的结果:
前
a: 1, 3, 5, 6, 7, 8, 9
b: 2, 4
后
a: 0, 0, 0, 0, 0, 0, 0
b: 2, 4
值数组
螺纹是如何制作的
请问有什么提示、建议或帮助吗?