首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同尺寸的ScaLAPACK块?

不同尺寸的ScaLAPACK块?
EN

Stack Overflow用户
提问于 2015-07-19 23:47:13
回答 1查看 231关注 0票数 0

我正在使用Intel执行Cholesky分解,它使用ScaLAPACK。我在这个示例的基础上分配了矩阵,其中矩阵是以块的形式分布的,这些块大小相等(即Nb )。我试着制作它,这样每个块都有自己的大小,这取决于它属于哪个进程,这样我就可以进行更多的实验,并获得更好的性能。

检查这个问题,以便更好地理解我在说什么。我不会发布我的代码,因为它太大了(是的,次要的例子也太大了,我检查过了),而且发行版似乎运行得很好。然而,ScaLAPACK似乎假定矩阵分布在大小相等的块中?

例如,我使用的是:

代码语言:javascript
复制
int nrows = numroc_(&N, &Nb, &myrow, &iZERO, &procrows);
int ncols = numroc_(&M, &Mb, &mycol, &iZERO, &proccols);

其中(摘自手册):

NB (全局输入)整数块大小,块的大小分布矩阵被分割成。

那么, ScaLAPACK是否允许具有非等块大小的分布式矩阵?

如果我像这样打印信息,对于一个8x8矩阵:

代码语言:javascript
复制
std::cout << Nb << " " << Mb << " " << nrows << " " << ncols << " " << myid << std::endl;

我明白了:

代码语言:javascript
复制
3 3 5 5 0
1 1 4 4 1
1 1 4 4 2
1 1 4 4 3

通过交换前两个块大小,如下所示:

代码语言:javascript
复制
1 1 4 4 0
3 3 5 3 1
1 1 4 4 2
1 1 4 4 3

对于8x8矩阵来说,这是没有意义的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-30 20:38:21

正如回答这里一样,答案是否定的,你不能有不同大小的块。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31507135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档