MPI 和 C 结构

2023-12-03

我必须承认,当我看到使用 MPI 传输一个 C 结构体需要多少行代码时,我感到非常震惊。

在什么情况下可以使用预定义的数据类型简单地传输结构MPI_CHAR?考虑以下示例:

struct particle {
   double x;
   double y;
   long   i;
};

struct particle p;
MPI_Isend(&p, sizeof(particle), MPI_CHAR, tag, MPI_COMM_WORLD, &sendr);

就我而言,所有进程都在同一架构上运行。填充是唯一的问题吗?


MPI_BYTE是发送无类型数据时使用的数据类型,而不是MPI_CHAR。如果两台机器具有相同的架构但使用不同的字符编码,则使用MPI_CHAR可能会损坏您的数据。将您的数据发送为MPI_BYTE将保留二进制表示形式,并且不执行任何表示形式转换。

也就是说,是的,从技术上讲,如果(且仅当)您可以保证发送端和接收端的数据表示形式相同,那么以这种方式发送结构是正确的。然而,这是一种糟糕的编程实践,因为它混淆了代码的用途,并引入了平台依赖性。

请记住,您只需定义和提交数据类型一次,而通常需要编写代码来多次发送它。仅仅为了在单个定义上节省几行而降低所有发送的清晰度并不是一种升级。

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

MPI 和 C 结构 的相关文章

  • 为什么相同的代码在同一台计算机上的执行时间可能不同?

    我是 C 编程新手 我编写了代码并希望获得它的运行时 这就是我所做的 每次运行代码时 我都会得到不同的运行时值 这样对吗 或者我的代码有问题吗 int main int argc char argv time t start end sta
  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 用 C++ 进行服装建模 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一些软件 最终会绘制一个人体框架 可以配置各种参数 并且计划是在假人身上放置某种衣服 我研究
  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 如何将 Roslyn 语义模型返回的类型符号名称与 Mono.Cecil 返回的类型符号名称相匹配?

    我有以下代码 var paramDeclType m semanticModel GetTypeInfo paramDecl Type Type Where paramDeclType ToString returns System Col
  • 防止在工厂方法之外实例化对象

    假设我有一个带有工厂方法的类 class A public static A newA Some code logging return new A 是否可以使用 a 来阻止此类对象的实例化new 那么工厂方法是创建对象实例的唯一方法吗 当
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub

随机推荐

  • 需要常量表达式吗? (Java switch 语句)

    我不知道是什么导致了这个错误 我和老师仔细检查了一遍 也没有发现问题所在 import java util Scanner public class MailAssignment public static void main String
  • spring MVC 多文件上传

    我正在使用 Spring MVC 和 JSP 我想上传 2 个文件 但问题是只上传了一个文件 下面是代码
  • 在写入文件之前美化 JSON 的 cURL 下载

    我正在使用 cURL 7 39 0 调用 REST Web 服务并将响应写入 json file curl L X POST b cookies txt H Content Type application json http localh
  • [电子邮件受保护] 还不够;无法点击屏幕底部[重复]

    这个问题在这里已经有答案了 可能的重复 iPhone 5 模拟器 无法点击屏幕底部 我添加了一个 电子邮件受保护 到我的项目 导致信箱区域消失 然而 对于这个项目 我发现这不够 我无法点击屏幕底部的任何像素 并且全屏动画会遮蔽该区域 信箱区
  • Django 模板不存在 admin/login.html

    我正在使用 django 1 4 并且出现了这个错误 模板不存在于 admin 管理 登录 html 我尝试重新安装 django 但没有成功 请帮助 您可以尝试将管理模板路径名添加到 django settings py 中的 TEMPL
  • gnuplot rowstacked 直方图:如何将总和放在条形上方

    这个问题与gnuplot 直方图 如何将值放在条形顶部 我有一个数据文件file dat x y1 y2 1 2 3 2 3 4 3 4 5 和 gnuplot set style data histogram set style hist
  • 如何在 VB.NET 中创建通用属性?

    我想做这样的事情 Private myCollection As IList Of T Public Property MyProperty Of T as IList Of T Get Return Me myCollection End
  • CryptGenRandom() 是线程安全的吗?

    CryptGenRandom 对于单个全局程序范围的 HCRYPTPROV 实例来说是线程安全的吗 MSDN 似乎缺乏这方面的任何信息 https msdn microsoft com en us library windows deskt
  • 复合 mdfind 搜索

    目标是查找某个州或国家 地区的所有图像 mdfind kind image 会找到所有图像 mdfind kMDItemCountry United States 将找到具有此属性的所有文件 mdfind kind image kMDIte
  • Doctrine 在水合过程中添加了额外的查询,导致“正常”一对一和自引用关系出现 n+1 问题

    News使用一对多自引用方法相互关联 一个消息是父级 可以有多个子级 更何况各有各News与 具有正常 非自引用 一对一关系Event and Gallery 当我运行简单的 DQL 时 SELECT n FROM App Entity N
  • 除非手动执行,否则 Elastic Beanstalk 上的“npm install”会失败

    我有一个带有 PHP 应用程序的 Elastic Beanstalk 环境 我只想跑npm install我的应用程序部署后 node and npm都通过部署配置安装在服务器上 我定义了一个容器命令 只需 cd 到正确的目录 然后运行np
  • 如何使用log4cxx保留单个文件并覆盖同一文件中的内容?

    在我的应用程序中 多个线程将数据记录在同一个文件中 如果文件大小超过限制 那么我必须删除文件中的特定记录并将所有内容向上移动 我可以在 Log4cxx 中执行此操作吗 如果可以 请回复您的想法 谢谢 该示例将解决您的问题 log4j roo
  • Erlang 有支持 AJAX 的模块吗? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想创建一个能够接收和发送 AJAX 消息的 Erlang 服务器 有没有提供此功能的模
  • Botmaker 解决 Qnamaker 后续问题

    对于我当前的项目 我尝试使用仅上下文的后续提示 My problem is now that some of the questions from the follow up prompts are the same 在 qna ui 中
  • 如何在处理函数的其余部分之前更新 WPF 中的 UI 元素?

    我想在用户单击按钮后立即禁用该按钮以阻止他们再次单击它 单击它时会执行许多检查 并且这些检查似乎是在 UI 更改发生之前完成的 我试图通过为按钮使用单独的线程来做到这一点 但它似乎仍然只在检查完成后更新 这是我正在使用的代码 private
  • 将子文档数组元素添加到mongoDB中的子文档数组元素

    这可能吗 我有一个集合 C 其中包含属性 A1 的数组 每个属性都有一个子属性数组 A2 如何将子文档添加到特定的 C A1 子文档 这是一个例子 db docs insert id 1 A1 A2 1 2 3 A2 4 5 6 如果您知道
  • 实体框架。删除表中的所有行

    如何使用实体框架快速删除表中的所有行 我目前正在使用 var rows from o in dataDb Table select o foreach var row in rows dataDb Table Remove row data
  • 使用 Java 8 将 ms 转换为字符串日期

    我有一个毫秒时间戳 并使用 SimpleDateFormater 对其进行格式化 如下所示 SimpleDateFormat sdfDate new SimpleDateFormat MM d yyyy h mm a return sdfD
  • 如何使用 .NET 从十六进制颜色代码获取颜色?

    如何从十六进制颜色代码中获取颜色 例如 FFDFD991 我正在读取文件并获得十六进制颜色代码 我需要创建相应的System Windows Media Color十六进制颜色代码的实例 框架中有内置方法可以做到这一点吗 我假设这是一个 A
  • MPI 和 C 结构

    我必须承认 当我看到使用 MPI 传输一个 C 结构体需要多少行代码时 我感到非常震惊 在什么情况下可以使用预定义的数据类型简单地传输结构MPI CHAR 考虑以下示例 struct particle double x double y l