Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The version numbers of Armadillo and Xerces that PowerGrid depends on? #1

Closed
siatjiasen opened this issue Jun 17, 2016 · 3 comments
Closed
Assignees

Comments

@siatjiasen
Copy link

Hi,

Thank you very much for sharing PowerGrid. I knew it from the ISMRM meeting, and want to give it a try on a Ubuntu 14.04 platform with
"-- Found Armadillo: /usr/lib/libarmadillo.so (found version "4.200.0")
/usr/include
-- Found Xerces-C: /usr/lib/x86_64-linux-gnu/libxerces-c-3.1.so
-- : /usr/include
-- Version: 3.1.1 ''

However, the "make" command could not continue with errors:
(1) /home/siat/PowerGrid/PowerGrid/config.hxx:53:2: error: #error XSD runtime version mismatch
#error XSD runtime version mismatch
/home/siat/PowerGrid/PowerGrid/config.hxx:87:53: error: wrong number of template arguments (2, should be 1)
typedef ::xsd::cxx::tree::simple_type< char, type > simple_type;

(2) /home/siat/PowerGrid/PowerGrid/PowerGridDWI3DDFT.cpp:67:71: required from here
/home/siat/PowerGrid/PowerGrid/pcSENSE.hpp:112:26: error: no matching function for call to ‘vectorise(arma::Cube&)’
Ix = vectorise(ix);
^
/home/siat/PowerGrid/PowerGrid/pcSENSE.hpp:112:26: note: candidates are:
In file included from /usr/include/armadillo:400:0,
from /home/siat/PowerGrid/PowerGrid/../Support/CeempleArmadillo.h:31,
from /home/siat/PowerGrid/PowerGrid/PowerGrid.h:45,
from /home/siat/PowerGrid/PowerGrid/PowerGridDWI3DDFT.cpp:27:
/usr/include/armadillo_bits/fn_vectorise.hpp:22:1: note: template typename arma::enable_if2arma::is_arma_type<T1::value, const arma::Op<T1, arma::op_vectorise_col> >::result arma::vectorise(const T1&)
vectorise(const T1& X)
^
/usr/include/armadillo_bits/fn_vectorise.hpp:22:1: note: template argument deduction/substitution failed:
/usr/include/armadillo_bits/fn_vectorise.hpp: In substitution of ‘template typename arma::enable_if2arma::is_arma_type<T1::value, const arma::Op<T1, arma::op_vectorise_col> >::result arma::vectorise(const T1&) [with T1 = arma::Cube]’:

It looked like the Xerces and Armadillo libraries I used didn't satisfy the requirement of PowerGrid. Would you please to show me which version is required by PowerGrid?

Thank you again.
Best wishes,
JiaSen

@acerjanic acerjanic self-assigned this Jun 20, 2016
@acerjanic
Copy link
Contributor

Hi JiaSen,

Sorry for the trouble! I haven't been careful in documenting the version of the libraries we are using. That needs to be fixed. Xerces-C++ looks like it is fine. We are using 3.1 currently and 3.1.3 is the latest. I am pretty sure that I use the Ubuntu 14.04 package on my development machine.

I think the error you are getting is related to xsd, the xml parsing tool that we use. Could you install xsd 4.0.0-1? You can find a .deb package from http://www.codesynthesis.com/products/xsd/download.xhtml, so the install should be pretty easy.

As for Armadillo, you will have to build from source because the packaged version in Ubuntu 14.04 is too old. We are using 6.700 currently although you might be okay with a version as old as 6.100. Installing Armadillo from source is very easy on Ubuntu, so I recommend that you build 6.700.7. We have not tried anything in the 7.x series yet. I don't think I will be moving to that version as there may be API incompatibilities between 6.x and 7.x.

Let me know if you are compiling with these versions of the library and I'll update the documentation.

Thanks for your patience!

--Alex

@siatjiasen
Copy link
Author

siatjiasen commented Jun 20, 2016

Hi Alex,

Thank you very much for your instruction.

xsd 4.0.0-1 (previously was 3.3.0) and armadillo 6.700.7 (previously was 4.200.0) solved my compilation problem. I successfully built the src with openacc, ismrmrd and mpi supports being set to OFF, and got four exes:
PowerGridGdft PowerGridSTEAM PowerGridDWI3DDFT PowerGridGnufft

Install new version of xsd and armadillo need to uninstall the old version:
sudo apt-get remove libxsdcxx
sudo apt-get remove libarmadillo-dev

I got the testdata, and run PowerGridGnufft.exe on the 192_192_1_32coils test data and got a 'test_pwls.mat' result which all elements were NaN when loading into MATLAB. I didn't know this was induced by wrong matio write (make check was passed during install matio library) or wrong calculation. I will give it a debugging.

Considering that PowerGrid need openacc for GPU computing. I am asking an academic version of openacc from NVIDIA.

Will report my result later.

Thank you again.
Best wishes,
Jia Sen

@acerjanic
Copy link
Contributor

Thanks Jia Sen for confirming those versions work for you. I'll update the documentation

I think the issue you are encountering is related to simple data scaling. I'm creating a new issue #2 to track this problem so that we can fix it.

I'm going to close this issue and open a new one to track the issue with data scaling.

Thanks for your patience!

--Alex

acerjanic added a commit that referenced this issue Jun 20, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants