标签: distributed-computing

C ++ MPI标准3

MPI标准版3在2011年发布,没有C ++绑定!我的问题是如何在没有MPI的情况下用C ++编写分布式计算程序(请注意,我们还需要OpenMP CUDA Openacc)在C ++中有MPI的替代方法(不是MPI 2.2,boost MPI)吗?MPI是基于TCP / IP构建的,因此我可以在C ++中使用TCP / IP构建自己的方式吗?

是否有C ++的MPI 3的开源绑定?

或只是必须坚持使用C GTK + CUDA OpenMP OpenGL MPI 3

如果您想要C ++ QT CUDA OpenMP OpenGL +分布式计算API怎么办?

Ubuntu和许多Linux发行版都试图用Wayland替换Xserver,而MIR都将编写特殊的API和层来为OpenGL桌面创建上下文来替换GLX,GTK +也会使用MIR Wayland整数,因此在Linux上,如果某些人和团体改变了,请尝试修复它尝试开发新的解决方案

但是MPI 3 C ++绑定我找不到解决方案

c++ distributed-computing mpi

4
推荐指数
1
解决办法
1360
查看次数

C#如何生成随机数取决于概率

我有一种情况,我必须生成一个随机数,这个数字必须是zeroone

所以,代码是这样的:

randomNumber = new Random().Next(0,1)
Run Code Online (Sandbox Code Playgroud)

但是,业务要求表明生成的数字为零的可能性仅为10%,生成的数字为1的概率为90%

但是,我可以在生成随机数时包括这个概率吗?

我想到的是:

  1. 生成包含10个零和90个整数的整数数组.
  2. 生成1到100之间的随机索引
  3. 获取与该索引对应的值

但是我不知道这种方式是否正确,而且,我认为C#应该为它做好准备

.net c# random math distributed-computing

4
推荐指数
2
解决办法
1208
查看次数

在 HPC 集群上使用 Python 多处理

我在 Windows HPC 集群上运行 Python 脚本。脚本中的函数使用starmap来自multiprocessing包的函数来并行化某个计算密集型过程。

当我在一台非集群机器上运行脚本时,我获得了预期的速度提升。当我登录到一个节点并在本地运行脚本时,我获得了预期的速度提升。但是,当作业管理器运行脚本时,速度提升multiprocessing要么完全缓解,要么有时甚至慢 2倍。我们注意到在starmap调用函数时会发生内存分页。我们认为这与 Python 的 性质有关multiprocessing,即为每个内核启动一个单独的 Python 解释器这一事实。

由于我们从单个节点的控制台成功运行,我们尝试使用 运行脚本HPC_CREATECONSOLE=True,但无济于事。

在运行使用 的 Python 脚本时,我们应该使用作业管理器中的某种设置multiprocessing吗?难道multiprocessing只是不适合HPC集群?

hpc distributed-computing multiprocessing python-3.x

4
推荐指数
1
解决办法
1730
查看次数

在多种谷物之间分配繁重的工作(微软奥尔良)

我想计算一个简单的可并行计算(例如Mandelbrot),其中Orleans在不同的晶粒上平行并且一旦晶粒完成就将结果合并在一起.但是,我不知道如何做到这一点,或者奥尔良是否是解决此类问题的正确框架.另外,我要提一下,这不会是任何将投入生产的项目,我只是在玩奥尔良.

到目前为止,这是我的想法:我有一个graintype(让我们称之为"maingrain"),这是客户端的入口点(也可能是一个粒子).然后,这种谷物估计所需处理能力的数量,并将任务分成较小的部分,这些部分从另一种谷物类型分配给其他谷物(我称之为"亚粒子").让这些子晶片完成工作并等待可以返回给客户端的结果没什么大不了的,但是我不知道如何处理子晶粒.

可以说,有一个电话我想要使用10个亚晶粒.我通过一个新的GUID得到每一个并让它们工作.他们完成了,客户得到了结果.现在有一个我想要使用X亚晶粒的电话:

  • 我应该简单地使用X个新GUID激活X个新的底色并让垃圾收集器进行清理吗?
  • 我应该以某种方式重复使用先前激活的亚晶粒(某种池),我怎么知道亚晶粒已经可以重复使用(=不繁忙)?
  • 如果我想使用多个maingrains会发生什么.每个都处理它自己的亚晶粒吗?

你会怎么做?谢谢.

c# distributed-computing actor orleans

4
推荐指数
1
解决办法
976
查看次数

如何将事件分发到(Wildfly)集群中的所有节点?

当我的进程中运行时间较长的进程的状态时,我想通知集群中的所有节点JavaEE 7以便每个节点都可以通过 WebSocket 通知其客户端有关该更改的信息。

我正在集群环境中使用 Wildfly 10。

哪种JavaEE 7API/编程模型或 Wildfly 服务是当今实现这一目标的最佳实践?

ejb distributed-computing java-ee-7 wildfly jakarta-ee

4
推荐指数
1
解决办法
884
查看次数

Raft 领导者在任期开始时承诺无操作条目

最近读了一篇关于Raft共识算法的论文。新的领导者不知道当前的提交索引是什么。

无操作如何 解决这个问题?

leader distributed-computing consensus raft

4
推荐指数
1
解决办法
743
查看次数

SQL如何处理多个进程同时将相同的记录写入同一个数据库表?

这是我长久以来的困惑。如果多个进程同时将相同的记录写入同一个数据库表中,它们会发生冲突吗?

类似的问题,例如,一台主机不断向许多其他机器分发请求,例如向机器 A 的表中插入一条记录。不知何故,此操作在机器 A 上非常慢,并且主控制器将向机器 B 重新发送完全相同的请求。那么会发生什么呢?会有冲突吗?

database concurrency distributed-computing

4
推荐指数
1
解决办法
5630
查看次数

Apache Flink 中的 Keyby 数据分布,逻辑运算符还是物理运算符?

根据 Apache Flink 文档,KeyBy 转换在逻辑上将流划分为不相交的分区。所有具有相同键的记录都被分配到同一个分区。

KeyBy是100%逻辑转换吗?它不包括跨集群节点分布的物理数据分区吗?如果是这样,那么如何保证所有具有相同键的记录都分配到同一个分区呢?

例如,假设我们从 n 个节点的 Apache Kafka 集群获取分布式数据流。运行我们的流作业的 Apache Flink 集群由 m 个节点组成。当对传入数据流应用 keyBy 转换时,它如何保证逻辑数据分区?或者它是否涉及跨集群节点的物理数据分区?

我似乎对逻辑数据分区和物理数据分区感到困惑。

distributed-computing data-partitioning apache-flink flink-streaming

4
推荐指数
1
解决办法
2246
查看次数

聊天期间以及用户再次登录时,Messenger 如何保持消息的顺序?

我在采访中被问到这个问题,但无法回答。

\n

当两条消息并发时,FB Messenger 如何对用户端的消息进行排序,以避免聊天期间以及用户再次访问 Messenger 时显示顺序出现差异。我认为我们可以为每条消息存储一个时间戳,这是服务器接收消息的时间。但是,这并不能确保客户端消息的正确排序。

\n

假设服务器时间戳无法确定消息的确切顺序,如下所示:

\n
    \n
  1. User-1 向 User-2 的服务器发送消息 M1。
  2. \n
  3. 服务器在 T1 接收 M1。
  4. \n
  5. 同时,User-2向User-1的服务器发送消息M2。
  6. \n
  7. 服务器在 T2 接收消息 M2,使得 T2 > T1。
  8. \n
  9. 服务器将消息 M1 发送到 User-2,将 M2 发送到 User-1。
  10. \n
  11. 因此,用户 1 将首先看到 M1,然后是 M2,而用户 2 将首先看到 M2,然后是 M1。
  12. \n
\n

我读到解决这个问题,我们可以使用矢量时钟,但无法理解如何在聊天期间以及用户再次登录时为不同用户保留消息顺序

\n

在上述场景中,用户 1 将看到 M1,然后是 M2,而用户 2 将看到 M2,然后是 M1。现在,如果每个用户还为其发送给每个客户端的每条消息(分别)生成序列号或时间戳。然后在上面的场景中,user1 将发送序列 <1 (user1 seq), 0(user2 seq) > 的消息 M1,而 user2 将发送序列 <0 (user1 seq), …

distributed distributed-computing distributed-system sequencing vector-clock

4
推荐指数
1
解决办法
2453
查看次数

分布式训练找不到Torchrun命令,是否需要单独安装?

我正在关注 torchrun 教程,但我们从未被告知如何安装 torchrun。既然我有 pytorch,它就应该自动存在吗?或者发生了什么事?

输出:

(meta_learning_a100) [miranda9@hal-dgx ~]$ torchrun --nnodes=1 --nproc_per_node=2 ~/ultimate-utils/tutorials_for_myself/my_l2l/dist_maml_l2l_from_seba.py
bash: torchrun: command not found...
Run Code Online (Sandbox Code Playgroud)

我问这个是因为官方火炬页面似乎建议使用它https://pytorch.org/docs/stable/elastic/run.html

例如

TORCHRUN (ELASTIC LAUNCH)
torchrun provides a superset of the functionality as torch.distributed.launch with the following additional functionalities:

Worker failures are handled gracefully by restarting all workers.

Worker RANK and WORLD_SIZE are assigned automatically.

Number of nodes is allowed to change between minimum and maximum sizes (elasticity).

Transitioning from torch.distributed.launch to torchrun
torchrun supports the same arguments as torch.distributed.launch except …
Run Code Online (Sandbox Code Playgroud)

distributed-computing pytorch

4
推荐指数
1
解决办法
2万
查看次数