mpi矩陣轉置

2021-06-06 19:02:36 字數 942 閱讀 9773

下面程式中mpi_type_hvector改為mpi_type_vector 就錯了,我以為是這樣的,因為這時是用的新型別stype構造ntype。stype為矩陣的一列資料的型別。ntype為整個轉置後的矩陣型別。

mpi_type_vector第三個引數stride代表的是number of elements between start of each block (integer) 。

而這時的資料型別是stype,不是mpi_int,兩者之間隔的元素個數自然不是1了。而mpi_type_hvector

stride 為number of bytes between start of each block (integer) ,自然沒問題了。//轉置

//預設執行程序數為2

#include "mpi.h"

#includeint main(int argc,char **argv){

int rows=6,cols=5;

int tag=0;

mpi_init(&argc,&argv);

int rank;

mpi_comm_rank(mpi_comm_world,&rank);

int a[rows][cols];

int b[cols][rows];

mpi_datatype stype,ntype;

mpi_type_vector(rows,1,cols,mpi_int,&stype);

//mpi_type_vector(cols,1,1,stype,&ntype);

mpi_type_hvector(cols,1,sizeof(int),stype,&ntype);

mpi_type_commit(&ntype);

mpi_status sta;

if(rank==0){

for(int i=0;i

稀疏矩陣的轉置(矩陣轉置和快速轉置)

實現矩陣的轉置 1.將矩陣的行列值相互轉換。2.將每個三元組中的i和j交換。3.重排三元組之間的次序便可實現矩陣的轉置。void transposesmatrix tsmatrix m,tsmatrix t return transposesmatrix快速轉置的原理是 如果能預先確定矩陣m中每一列...

稀疏矩陣轉置矩陣

num 矩陣a中某列的非零元素的個數 cpot 初值表示矩陣a中某列第乙個非零元素在b中的位置,並有如下遞推 cpot 1 0 cpot col cpot col 1 num col 1 2 col nu end right.const int maxterm 100 struct sparsema...

轉置矩陣,逆矩陣和倒轉置矩陣

單位矩陣 轉置矩陣 transpose matrix 性代數中,矩陣 a的轉置是另乙個矩陣a t 也寫做a tr,t a或a 由下列等價動作建立 形式上說,m n矩陣a的轉置是n m矩陣 對於矩陣a,b和標量c轉置有下列性質 轉置是從 m n矩陣的 向量空間到所有 n m矩陣的向量空間的 線性對映。...