- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 PETSc 中编写 LU 分解应用程序。我的想法是,程序将打印未因式分解的矩阵,然后打印因式分解的矩阵并计算因式分解本身所花费的时间。
我根据在互联网上找到的少量信息编写了代码(我使用 this post 中的信息来初始化我的矩阵),但不幸的是,这还不够。我的代码可以编译,但是当我尝试运行它时,它只是发出此错误:
[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR: No support for this operation for this object type
[0]PETSC ERROR: Mat type mpiaij
[0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.5.2, Sep, 08, 2014
[0]PETSC ERROR: ./petscLUFact on a arch-linux2-c-debug named martin-Aspire-E1-531 by martin Wed Oct 22 22:48:42 2014
[0]PETSC ERROR: Configure options
[0]PETSC ERROR: #1 MatLUFactor() line 2715 in /home/martin/petsc-3.5.2/src/mat/interface/matrix.c
[0]PETSC ERROR: #2 main() line 49 in petscLUFact.c
[0]PETSC ERROR: ----------------End of Error Message -------send entire error message to petsc-maint@mcs.anl.gov----------
application called MPI_Abort(MPI_COMM_WORLD, 56) - process 0
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 56
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
此错误是由 MatLUFactor 引起的函数,我想将其用于就地 LU 分解。问题是,我不知道我的代码到底出了什么问题。我认为,核心问题可能在于矩阵变量本身,也许是因为分配不当(我想到了 MatMPIAIJSetPreallocation 函数),但我不确定。
我尝试将 MatLUFactor 函数替换为 MatLUFactorNumeric和 MatLUFactorSymbolic ,但它的效果比 MatLUFactor 还要差,它的误差“大”得多:-)
最后,我尝试使用以下命令启动我的程序:
mpiexec -n 4 ./petscLUFact
所以,如果您知道任何解决方案,我将不胜感激;-) 谢谢!
P.s.:我一直在寻找可能的解决方案,到目前为止我找到的最接近的文章是 this maillist ,但提问者使用 ParMETIS 和 SuperLU 包,据我所知,我不使用。
<小时/>这是我的源代码:
static char help[] = "Reads a PETSc matrix and vector from a file and reorders it.\n\
f0 <input_file> : first file to load (small system)\n\
-f1 <input_file> : second file to load (larger system)\n\n";
#include <petscsys.h>
#include <petscmat.h>
int main( int argc, char **args ) {
Mat A; // 'main' matrix
PetscInt r = 2, c = 2; // matrix dimensions (row x col)
PetscInt i,j; // coordinates
PetscInt Istart, Iend;
PetscInt Ii; // counter
PetscScalar v; // 2-dimensional array ??? (I'm not sure)
PetscErrorCode ierr;
PetscInitialize( &argc, &args, (char*)0, help );
// Create matrix
ierr = MatCreate( PETSC_COMM_WORLD, &A );CHKERRQ( ierr );
ierr = MatSetSizes( A, PETSC_DECIDE, PETSC_DECIDE, r*c, r*c );CHKERRQ( ierr );
ierr = MatSetFromOptions(A);CHKERRQ( ierr );
ierr = MatMPIAIJSetPreallocation( A, 2, PETSC_NULL, 2, PETSC_NULL );CHKERRQ( ierr );
ierr = MatGetOwnershipRange(A,&Istart,&Iend);CHKERRQ( ierr );
// INIT matrix
ierr = MatSetValue( A, 0, 0, 1, INSERT_VALUES ); CHKERRQ( ierr );
ierr = MatSetValue( A, 0, 1, 2, INSERT_VALUES ); CHKERRQ( ierr );
ierr = MatSetValue( A, 1, 0, 3, INSERT_VALUES ); CHKERRQ( ierr );
ierr = MatSetValue( A, 1, 1, 1, INSERT_VALUES ); CHKERRQ( ierr );
ierr = MatAssemblyBegin( A, MAT_FINAL_ASSEMBLY ); CHKERRQ( ierr );
ierr = MatAssemblyEnd( A, MAT_FINAL_ASSEMBLY ); CHKERRQ( ierr );
// Print the matrix
ierr = MatView( A, PETSC_VIEWER_STDOUT_WORLD ); CHKERRQ( ierr );
// -----------------
// LU-decomposition
// -----------------
MatFactorInfo mfi;
// MatFactorInfo mfi INIT
ierr = MatFactorInfoInitialize( &mfi ); CHKERRQ( ierr );
mfi.fill = 2;
mfi.dtcol = 0;
IS rowPerm; // variable for row permutations
IS colPerm; // variable for column permutations
// Possible replace for MatLUFactor
/*
Mat Fact;
ierr = MatLUFactorSymbolic( Fact, A, rowPerm, colPerm, &mfi );
ierr = MatLUFactorNumeric( Fact, A, &mfi );
*/
// I've read somewhere, that zeros are enough for last three
// parameters, but it doesn't work too
//ierr = MatLUFactor( A, 0, 0, 0 ); CHKERRQ( ierr );
ierr = MatLUFactor( A, rowPerm, colPerm, &mfi );
ierr = MatView( A, PETSC_VIEWER_STDOUT_WORLD ); CHKERRQ( ierr );
MatDestroy(&A);
PetscFinalize();
return 0;
}
这是我使用 MatLUFactorNumeric 和 MatLUFactorSymbolic 函数时的错误:
[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR: No support for this operation for this object type
[0]PETSC ERROR: Matrix format mpiaij does not have a built-in PETSc LU
[0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.5.2, Sep, 08, 2014
[0]PETSC ERROR: ./petscLUFact on a arch-linux2-c-debug named martin-Aspire-E1-531 by martin Wed Oct 22 23:40:55 2014
[0]PETSC ERROR: Configure options
[0]PETSC ERROR: #1 MatGetFactor() line 3961 in /home/martin/petsc-3.5.2/src/mat/interface/matrix.c
[0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range
[0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
[0]PETSC ERROR: or see http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind[0]PETSC ERROR: or try http://valgrind.org on GNU/linux and Apple Mac OS X to find memory corruption errors
[0]PETSC ERROR: likely location of problem given in stack below
[0]PETSC ERROR: --------------------- Stack Frames ------------------------------------
[0]PETSC ERROR: Note: The EXACT line numbers in the stack are not available,
[0]PETSC ERROR: INSTEAD the line number of the start of the function
[0]PETSC ERROR: is given.
[0]PETSC ERROR: [0] MatLUFactorSymbolic line 2825 /home/martin/petsc-3.5.2/src/mat/interface/matrix.c
[0]PETSC ERROR: [0] MatGetFactor line 3944 /home/martin/petsc-3.5.2/src/mat/interface/matrix.c
[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR: Signal received
[0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.5.2, Sep, 08, 2014
[0]PETSC ERROR: ./petscLUFact on a arch-linux2-c-debug named martin-Aspire-E1-531 by martin Wed Oct 22 23:40:55 2014
[0]PETSC ERROR: Configure options
[0]PETSC ERROR: #2 User provided function() line 0 in unknown file
application called MPI_Abort(MPI_COMM_WORLD, 59) - process 0
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 59
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
最佳答案
这是错误消息:
[0]PETSC ERROR: No support for this operation for this object type
[0]PETSC ERROR: Mat type mpiaij
因此不支持此操作,即 LU 分解,对于垫子类型 mpiaij。现在我们可以上诉online documentation , 哪个确实说内置 LU 仅适用于顺序矩阵 (seqaij)。它还显示了可用的软件包,例如 SuperLU 和 MUMPS,可以与 PETSc 一起使用并行进行 LU 分解。这些都可以是使用自动安装
--download-superlu --download-mumps
关于c - PETSc - MatLUFactor - 不支持此对象类型的此操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26517659/
我正在尝试编写一个相当多态的库。我遇到了一种更容易表现出来却很难说出来的情况。它看起来有点像这样: {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE
谁能解释一下这个表达式是如何工作的? type = type || 'any'; 这是否意味着如果类型未定义则使用“任意”? 最佳答案 如果 type 为“falsy”(即 false,或 undef
我有一个界面,在IAnimal.fs中, namespace Kingdom type IAnimal = abstract member Eat : Food -> unit 以及另一个成功
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: What is the difference between (type)value and type(va
在 C# 中,default(Nullable) 之间有区别吗? (或 default(long?) )和 default(long) ? Long只是一个例子,它可以是任何其他struct类型。 最
假设我有一个案例类: case class Foo(num: Int, str: String, bool: Boolean) 现在我还有一个简单的包装器: sealed trait Wrapper[
这个问题在这里已经有了答案: Create C# delegate type with ref parameter at runtime (1 个回答) 关闭 2 年前。 为了即时创建委托(dele
我正在尝试获取图像的 dct。一开始我遇到了错误 The function/feature is not implemented (Odd-size DCT's are not implemented
我正在尝试使用 AFNetworking 的 AFPropertyListRequestOperation,但是当我尝试下载它时,出现错误 预期的内容类型{( “应用程序/x-plist” )}, 得
我在下面收到错误。我知道这段代码的意思,但我不知道界面应该是什么样子: Element implicitly has an 'any' type because index expression is
我尝试将 SignalType 从 ReactiveCocoa 扩展为自定义 ErrorType,代码如下所示 enum MyError: ErrorType { // .. cases }
我无法在任何其他问题中找到答案。假设我有一个抽象父类(super class) Abstract0,它有两个子类 Concrete1 和 Concrete1。我希望能够在 Abstract0 中定义类
我想知道为什么这个索引没有用在 RANGE 类型中,而是用在 INDEX 中: 索引: CREATE INDEX myindex ON orders(order_date); 查询: EXPLAIN
我正在使用 RxJava,现在我尝试通过提供 lambda 来订阅可观察对象: observableProvider.stringForKey(CURRENT_DELETED_ID) .sub
我已经尝试了几乎所有解决问题的方法,其中包括。为 提供类型使用app.use(express.static('public'))还有更多,但我似乎无法为此找到解决方案。 index.js : imp
以下哪个 CSS 选择器更快? input[type="submit"] { /* styles */ } 或 [type="submit"] { /* styles */ } 只是好
我不知道这个设置有什么问题,我在 IDEA 中获得了所有注释(@Controller、@Repository、@Service),它在行号左侧显示 bean,然后转到该 bean。 这是错误: 14-
我听从了建议 registering java function as a callback in C function并且可以使用“简单”类型(例如整数和字符串)进行回调,例如: jstring j
有一些 java 类,加载到 Oracle 数据库(版本 11g)和 pl/sql 函数包装器: create or replace function getDataFromJava( in_uLis
我已经从 David Walsh 的 css 动画回调中获取代码并将其修改为 TypeScript。但是,我收到一个错误,我不知道为什么: interface IBrowserPrefix { [
我是一名优秀的程序员,十分优秀!