- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 MPI_Scatter 和 MPI_Gather 实现矩阵乘法。如果进程数平均分为矩阵行数和列数,我的代码就可以正常工作。但是,当它们不均匀划分时,它会在 MPI_Gather 上崩溃。这是有道理的,因为 MPI_Gather 期望从每个进程中获得一定数量,而不会从最后一个进程中收到那么多。有没有办法使这项工作?我查看了 MPI_Gatherv,但我不希望数据之间有空格 - 我只是希望它收到的数量少于最后一个过程的数量。
目前,我正在使用 MPI_Scatter 向每个进程发送以下数量:
ceil(N/size)
最佳答案
我认为包装MPI_Scatterv
和 MPI_Gatherv
在辅助函数中是要走的路。今天我写了一对这样的包装器作为我暑期学校的一部分,如果您仍然需要解决方案,请随时使用它们。
void fillCounts(int rank, int size, int totalCount, int *counts, int *offsets) {
int i;
int n;
int sum;
n = totalCount / size;
for (i = 0; i < size; i++)
counts[i] = n;
for (i = 0; i < totalCount % size; i++)
counts[i] += 1;
sum = 0;
for (i = 0; i < size; i++) {
offsets[i] = sum;
sum += counts[i];
}
}
int scatter01(const void *sendBuf, int totalCount, MPI_Datatype dataType,
void *recvBuf, int *recvCount,
int root, MPI_Comm comm) {
int rank;
int size;
int *counts;
int *offsets;
MPI_Comm_rank(comm, &rank);
MPI_Comm_size(comm, &size);
counts = alloca(size * sizeof(int));
offsets = alloca(size * sizeof(int));
fillCounts(rank, size, totalCount, counts, offsets);
*recvCount = counts[rank];
return MPI_Scatterv(sendBuf, counts, offsets, dataType,
recvBuf, counts[rank, dataType, root, comm);
}
int gather01(void *recvBuf, int totalCount, MPI_Datatype dataType,
const void *sendBuf, int root, MPI_Comm comm) {
int rank;
int size;
int *counts;
int *offsets;
MPI_Comm_rank(comm, &rank);
MPI_Comm_size(comm, &size);
counts = alloca(size * sizeof(int));
offsets = alloca(size * sizeof(int));
fillCounts(rank, size, totalCount, counts, offsets);
return MPI_Gatherv(sendBuf, counts[rank], dataType,
recvBuf, counts, offsets, dataType, root, comm);
}
double globData[N];
double partData[N/size+1];
int n;
scatter01(globData, N, MPI_DOUBLE, partData, &n, 0, MPI_COMM_WORLD);
gather01 (globData, N, MPI_DOUBLE, partData, 0, MPI_COMM_WORLD);
关于c - MPI_Gather 金额不等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21790384/
我正在尝试创建一个可以识别金额(美元)的正则表达式。问题是数据是在扫描的 PDF 文件上通过 OCR 生成的,因此数据不精确: $可以用S表示 .可以表示为, 1可以用l或I表示 5可以用S表示 例子
在写输入用到input的时候,经常出现以下几种情况: 只能输入某。栗子:只能输入数字,只能输入字母(大写,小写)只能输入某固定格式。栗子:只能输入金额,只能输入小数且最多保留2位不能输入某。栗子:
我们正在开发旅游网站,用于预订航类、酒店、汽车等。它是基于产品的软件。客户(购买我们软件的)将成为“主要代理机构”。他的总交易将以 INR(印度卢比货币)为单位。航类、酒店或汽车预订总额仅以“印度卢比
以下操作有什么区别吗? (将当前日期提前 160 天) Calendar c = Calendar.getInstance(); c.add(Calendar.DAY_OF_WEEK,
假设有 5 个桶 (1 - 5),并且为每个桶分配一个(整数)值。例如 > bucket = 1:5 > value = c(14, 12, 9, 20, 7) > data.frame(bucket
我正在尝试使用 MYSQL 查询对每月和每年以及该月的总收入进行分组,我尝试了多次,但似乎总是出错。 我当前的查询: Month Year
我正在创建一个 PHP 表单,其中包含客户的信息和他们想要花费的金额,当点击提交按钮时,详细信息将发送到我的电子邮件地址。 这就是我遇到的问题。然后我想向他们发送指向 PayPal 帐户的链接以完成购
我想获取总交易量超过50000的用户 SELECT sum(tractions.amount) as total , user_id FROM `tractions` where `total`
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我有一段固定的文本,每次文本进入滚动的 div 时我都会尝试添加不同的类。我用起来没问题。但是如果我向固定文本添加偏移量,例如 top: 400px 我需要在 JS 中抵消这个偏移量。但我似乎无法弄清
我有下表 create table supplier_paid_details( id bigint(10) NOT NULL AUTO_INCREMENT, payment_mode
我正在练习 java 银行帐户中的一些简单任务,需要有关代码块的建议,如何编写?这是一个例子,如果用户输入字符串或一些字母而不是数字来打印“请输入数字”,如何输入 Else if block amou
我正在使用 angularJS 在 mvc-5 中创建一个基于 Web 的应用程序,我在表中得到了金额总和 Total: {{totalAmount}} 我像这样从 Controller 获取金额 $
我的数据就是这样返回的。我需要返回列表中的所有值,确保时间格式和票价金额按照我的解释进行纠正。我想删除票价中的逗号以及出发和到达中的 AM & PM。提前谢谢了。因为大约有 3 个航类代码,总共有 1
我想计算一下 数量 * 比率 = 金额 金额 - 折扣 + 税费 = 账单金额 账单金额+四舍五入= Netty 我知道这很容易完成,但问题是任何人都可以通过检查元素更改该值。为了阻止这种情况,我必须
基本上,我正在 LINQ 中寻找一种方法来选择列表中的第一个(比如说 3 个)分组对象。 例如,列表可能包含: {“AAA”、“AAA”、“AAA”、“AAA”、“BBB”、“BBB”、“CCC”、“
我正在尝试按类别对金额进行求和,但存在基于引用编号的重复金额,并且我只想为每个引用包含 1 个金额。大约有100K个不同的引用号,全线有4个差异量。 我正在分析的数据如下所示: reference |
我有一个表,每个 user_id 有很多行 我正在尝试按 user_id 对行进行分组并对它们的金额进行求和 这是表结构 Name Type Collation Attributes
如何查询实际金额 1.00 以内的金额列? 例如,如果 AmountPaid = 7.75,我想返回 Amount 在 6.75 - 8.75 之间的所有结果。 我知道我忽略了一些简单的事情,但到目前
我是 C# 的新手,正在为我尝试创建的程序而苦苦挣扎。我希望我能尽我所能提出这个问题。根据我的任务,我们将在 Visual Basic 中创建一个用于创建帐户的 Windows 窗体。出于我的问题的目
我是一名优秀的程序员,十分优秀!