如何从从节点向主节点发送动态数组

2023-12-24

我正在完成一个简单的 MPI 程序,但我正在努力完成该项目的最后一部分。 我发2个ints 包含从节点的起点和终点。使用这些我需要创建一个数组并填充它。我需要将其发送回主节点。从机代码如下:

printf("Client waiting for start point and endpoint array\n");fflush(stdout);

int startEnd [2];

MPI_Recv(startEnd, 2, MPI_INT, 0, 100, MPI_COMM_WORLD, &status);
int end = startEnd[1];
int start = startEnd[0];
printf("Recieved Start End of %d \t %d\n", startEnd[0], startEnd[1]);fflush(stdout);

unsigned char TargetHash[MAX_HASH_LEN];
MPI_Recv(TargetHash, MAX_HASH_LEN, MPI_CHAR, 0, 100, MPI_COMM_WORLD, &status);

int sizeToCompute = (end - start);
uint64* pStartPosIndexE = new uint64[sizeToCompute];
int iterator = 0;
for (int nPos = end; nPos >= start; nPos--)
{
    cwc.SetHash(TargetHash);
    cwc.HashToIndex(nPos);
    int i;
    for (i = nPos + 1; i <= cwc.GetRainbowChainLength() - 2; i++)
    {
        cwc.IndexToPlain();
        cwc.PlainToHash();
        cwc.HashToIndex(i);
    }

    pStartPosIndexE[iterator] = cwc.GetIndex();                 
}

这是创建动态长度数组的正确方法吗?我如何将该数组发送回主节点?


发送动态分配的数组与发送静态数组没有什么不同。当数组大小变化时,接收代码会变得有点复杂,但也没有那么复杂:

// ---------- Sender code ----------

MPI_Send(pStartPosIndexE, sizeToCompute, MPI_UINT64, 99, ...);

// --------- Receiver code ---------

// Wait for a message with tag 99
MPI_Status status;
MPI_Probe(MPI_ANY_SOURCE, 99, MPI_COMM_WORLD, &status);

// Get the number of elements in the message
int nElems;
MPI_Get_elements(&status, MPI_UINT64_T, &nElems);

// Allocate buffer of appropriate size
uint64 *result = new uint64[nElems];

// Receive the message
MPI_Recv(result, nElems, MPI_UINT64_T, status.MPI_SOURCE, 99, ...);

Using MPI_Probe源排名为MPI_ANY_SOURCE这是主/工作应用程序中通常执行的操作,其中工作人员按照先到先服务的原则进行处理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从从节点向主节点发送动态数组 的相关文章

随机推荐

  • Solr:索引没有定义可操作的 DataImportHandler

    我试图使用 DataImportHandler 在云模式下使用 Solr 来索引我的 MySQL 数据库 以下是它使用 default 配置集的配置 solr 7 3 0 server solr configsets default con
  • 在 HTML 中的表格单元格内添加图像

    很抱歉 我无法做这个简单的事情 我无法在表格单元格中添加图像 以下是我编写的代码 CAR APPLICATION table border 5 align center th ABCD th tr th Name th th Origin
  • 某些边缘无法访问隐藏轮廓属性 EdgePrims

    我正在努力改变LineJoin对于 MATLAB 等高线图中的某些线 当我修改EdgePrims 只有 部分线路 受到影响 num incs 3 x linspace 1 1 num incs Xa Ya meshgrid x x Z ab
  • 无法删除所有 Azure 网站连接字符串

    对于我的团队目前正在开发的一个网站 我们正在尝试编写一些 PowerShell 自动化来临时覆盖通常位于 Web config 中的连接字符串 然后稍后将其删除 但是 使用 PowerShell cmdlet 和 Azure REST AP
  • OSX — 配置 Emacs 以使用 NSSpellChecker

    我在对 Aquamacs 进行逆向工程以提取 NSSpellChecker 的用法 功能时遇到问题 我想将这种用途 功能从源代码合并到 Emacs 的基本构建中 我找到了看似相关的文件 ns win el flyspell el and i
  • 初学者:rails 语法

    我刚刚开始学习 ruby on Rails 我正在使用 Rails 敏捷 Web 开发 第 4 版 Rails 3 1 一书 我安装了 Rails 3 1 3 书中的例子显示了这样的代码 但这段代码不起作用 我必须将代码更改为 这有效 但我
  • Tensorflow:没有启用任何 MLIR 优化通道(注册 1)

    我使用一个非常小的模型来使用 TensorFlow 2 3 和 keras 进行测试 查看我的终端 我收到以下警告 I tensorflow compiler mlir mlir graph optimization pass cc 118
  • 从 C# 中的 .resx 文件读取字符串

    如何在 C 中从 resx 文件读取字符串 ResourceManager除非您从某个位置加载 否则不需要external资源 对于大多数情况 假设您创建了一个项目 DLL WinForms 等等 您只需使用项目命名空间 资源 和资源标识符
  • URL 主机中可以显示哪些有效字符?

    我正在编写一些处理 URL 的代码 并且我想确保我不会遗漏一些奇怪的情况 除 A Z 0 9 和 之外 主机是否还有其他有效字符 这包括子域中的任何内容等 本质上是 和第一个 之间的任何内容 Thanks 请参见对有效主机名的限制 http
  • 将 AngularFire 与 Angular ui-router 一起使用时如何启用路由安全?

    是否可以使用AngularFire 路线安全模块 https github com firebase angularFire seed blob master app js module routeSecurity js有角的UI路由器 h
  • 如果我在应用程序中添加 ACTION-VIEW 最终结果是什么?

    我从我的 Android 工作室收到了这个通知 应用程序无法被 Google 搜索索引 考虑添加至少一个 具有 ACTION VIEW 意图填充器的活动 请参阅问题说明 更多细节 添加深层链接以使您的应用程序进入 Google 索引并获得安
  • 如何跟踪 Django 中的按钮单击?

    Views py 我希望能够转到用户页面 然后单击并通过与 Twitter 完全相同的按钮关注他们 我有点知道如何添加用户 正如您在我的视图中通过添加变量看到的那样 但我真的不知道如何将其实际实现到一个按钮中 让我可以跟随用户 我已经被困在
  • “%tB”格式化程序如何工作?

    System out format tB 12 我应该从中得到一个 十二月 但是我得到了一个很好的例外 Exception in thread main java util IllegalFormatConversionException
  • 如何使 Firebase 函数模拟器基于数据库模拟器更新触发

    简而言之 我想测试一个Firebase 功能 https firebase google com docs functions本地 特别是由实时数据库触发器 https firebase google com docs functions
  • 前端实例时间突然增加[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经使用 GAE 应用程序 1 年了 每天前端实例时间花费不到 1 美元 然而 今天它突然增加到10美元 我没有做任何事情 应用程序的流
  • 如何让div在浏览器中占据100%视口高度

    我有一个 div 标签 我意识到它没有按应有的方式填充 100 的高度 My code container width 100vw height 100vh background purple body margin 0px div div
  • 阻止 AWS ElasticBeanstalk 中 Apache 中的无效 HTTP_HOST 标头

    我有几个运行部署在 AWS ElasticBeanstalk 中的 Django Apache 的网站 我唯一的问题是每天收到数百封有关此主题的电子邮件 Django ERROR EXTERNAL IP Invalid HTTP HOST
  • 使用 Emscripten 编译 GMP/MPFR

    好吧 这已经让我发疯了 我已经尝试了至少一个月 但互联网上的任何地方都没有帮助 我按照以下步骤操作this https github com kripken gmp js 当我执行这些步骤时 甚至这个示例也不起作用 因为当我这样做时 我得到
  • tableGrob:设置grid.table的高度和宽度

    我正在尝试创建一个函数 为我提供一个可以用于 indesign illustrator 或 inkscape 的绘图 在尝试这样做时 我有两个无法解决的问题 1 设置我的绘图 或只是grobTable 的宽度和高度 我得到的输出非常小 当在
  • 如何从从节点向主节点发送动态数组

    我正在完成一个简单的 MPI 程序 但我正在努力完成该项目的最后一部分 我发2个ints 包含从节点的起点和终点 使用这些我需要创建一个数组并填充它 我需要将其发送回主节点 从机代码如下 printf Client waiting for