From e72df7f685c0f1431f8053fc53589293b9945a6c Mon Sep 17 00:00:00 2001 From: Marcin Kirsz <mkirsz@ed.ac.uk> Date: Tue, 8 Oct 2024 12:55:08 +0100 Subject: [PATCH] fix for solver when N > M --- trainer.h | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/trainer.h b/trainer.h index a5a2011..68896af 100644 --- a/trainer.h +++ b/trainer.h @@ -198,8 +198,7 @@ class MPI_Trainer: public Trainer { // workers. //DesignMatrix<DM_Function_Base&> dm(*fb, config); dm.Phi.resize(phi_rows1,phi_cols1); - int LLD = phi_rows1>phi_cols1 ? phi_rows1 : phi_cols1; - dm.T.resize(LLD); + dm.T.resize(phi_rows1); dm.Tlabels.resize(phi_rows1); } void probe() { @@ -218,13 +217,10 @@ class MPI_Trainer: public Trainer { int descB[9], descB2[9]; int info, info2; - int LLD1 = phi_rows1>phi_cols1 ? phi_rows1 : phi_cols1; - int LLD2 = phi_rows2>phi_cols2 ? phi_rows2 : phi_cols2; - descinit_( descPHI, &PHI_rows, &PHI_cols, &rnb1, &cnb1, &izero, - &izero, &context1, /*leading dimension*/&LLD1, &info); + &izero, &context1, /*leading dimension*/&phi_rows1, &info); descinit_( descPHI2, &PHI_rows, &PHI_cols, &rnb2, &cnb2, &izero, - &izero, &context2, /*leading dimension*/&LLD2, &info2); + &izero, &context2, /*leading dimension*/&phi_rows2, &info2); if(info != 0) { printf("Error in descinit 1a, info = %d\n", info); @@ -235,9 +231,9 @@ class MPI_Trainer: public Trainer { } descinit_( descB, &PHI_rows, &ione, &rnb1, &cnb1, &izero, - &izero, &context1, /*leading dimension*/&LLD1, &info); + &izero, &context1, /*leading dimension*/&phi_rows1, &info); descinit_( descB2, &PHI_rows, &ione, &rnb2, &cnb2, &izero, - &izero, &context2, /*leading dimension*/&LLD2, &info2); + &izero, &context2, /*leading dimension*/&phi_rows2, &info2); if(info != 0) { printf("Error in descinit 1b, info = %d\n", info); @@ -258,18 +254,15 @@ class MPI_Trainer: public Trainer { // Distribute data in 2D block cyclic DesignMatrix<DM_Function_Base&> dm2(*fb, config); dm2.Phi.resize(phi_rows2,phi_cols2); - dm2.T.resize(LLD2); + dm2.T.resize(phi_rows2); dm2.Tlabels.resize(phi_rows2); - std::cout << "111" << std::endl; pdgemr2d_(&PHI_rows, &PHI_cols, dm.Phi.ptr(), &ione, &ione, descPHI, dm2.Phi.ptr(), &ione, &ione, descPHI2, &context2); - std::cout << "222" << std::endl; pdgemr2d_(&PHI_rows, &ione, dm.T.ptr(), &ione, &ione, descB, dm2.T.ptr(), &ione, &ione, descB2, &context2); - std::cout << "333" << std::endl; double wkopt2; int lwork2 = -1; // query -> get size of the work matrix std::cout << "rank: " << rank << " 1. trans: " << trans << " PHI_cols " << PHI_cols << " PHI_rows " << PHI_rows << " nrhs: " << nrhs << std::endl; -- GitLab