小编G. *_*ron的帖子

大多数编译器是否优化MATMUL(TRANSPOSE(A),B)?

在Fortran程序中,我需要计算几个表达式,例如M · vM T · vM T · MM · M T等。在这里,Mv是小尺寸(较小的2D和1D数组)大于100,通常为2-10)

我想知道MATMUL(TRANSPOSE(M),v)在编译时编写的代码是否可以像MATMUL(N,v)N显式存储为的代码中一样高效地展开N=TRANSPOSE(M)。我对带有“强”优化标志(例如-O2,-O3或-Ofast)的gnu和ifort编译器特别感兴趣。

fortran gfortran micro-optimization intel-fortran

5
推荐指数
1
解决办法
217
查看次数

通过 mpi 发送 c++ std::vector<bool>

我知道 a 的存储std::vector<bool> 不一定是 bool 数组

如果我想发送接收存储在 a 中的 int 数据std::vector<int>,我会使用MPI_Send(vect.data(),num_of_ints,MPI_INT,dest_rk,tag,comm).

我应该如何使用MPI_Send发送std::vector<bool>?尤其 :

  • 我可以/应该用作vect.data()缓冲区的指针吗?
  • 我应该提供什么 MPI 类型?不知怎的,我觉得MPI_CXX_BOOL不适用(参见这个问题
  • 我应该给出多少个元素?(与上一点相关)

c++ boolean mpi

4
推荐指数
1
解决办法
494
查看次数