Xfiles issueshttp://git.gem.ec-nantes.fr/eXlibris/Xfiles/-/issues2019-03-20T09:43:17Zhttp://git.gem.ec-nantes.fr/eXlibris/Xfiles/-/issues/48Exception in parrallel2019-03-20T09:43:17ZAlexis SALZMANException in parrallelIn some plateform (liger at least) throwing an exception in a parallel application lead to bad behavior. Say some process terminate due to the launched exception but other process do continue .... and the job run till MaxTime limite is r...In some plateform (liger at least) throwing an exception in a parallel application lead to bad behavior. Say some process terminate due to the launched exception but other process do continue .... and the job run till MaxTime limite is reachead (not to good).
Suprisingly if exception is catched and a MPI_Abort is called the same problem hold ?!?!
To be investigate ....http://git.gem.ec-nantes.fr/eXlibris/Xfiles/-/issues/45xGenericSparseMatrix in distributed context2019-12-02T15:39:48ZAlexis SALZMANxGenericSparseMatrix in distributed contextFor now all distributed problem where using an instance of xGenericSparseMatrix without futher implication. Issue #17 is already tackling one current unfeatured topic (distributed matrix by distributed vector operation).
But there is m...For now all distributed problem where using an instance of xGenericSparseMatrix without futher implication. Issue #17 is already tackling one current unfeatured topic (distributed matrix by distributed vector operation).
But there is more functionality bugged in distributed parallel context:
* normMax (need a AllReduce)
* fillZeroDiag (more complex as it needs to test that distributed contribution of diag term are all null before replacing one of it by value computed with normMax)
Maybe there is other topics (I don't inspect every thing).
Also a strategy may have to be settle to explicitelly deal with distributed format COO -> COODIST ....Parallel integrationhttp://git.gem.ec-nantes.fr/eXlibris/Xfiles/-/issues/40Compiling with clang++2018-07-27T13:38:51ZAlexis SALZMANCompiling with clang++Now that clang++ 3.9.0 is installed on titan (/opt/llvm-3.9.0/bin/clang++) it is possible to do some compilation test with this compiler.
Modify your LocalConfig.cmake to use clang++ and rebuild everything.
A full Ctest on Xtest have ...Now that clang++ 3.9.0 is installed on titan (/opt/llvm-3.9.0/bin/clang++) it is possible to do some compilation test with this compiler.
Modify your LocalConfig.cmake to use clang++ and rebuild everything.
A full Ctest on Xtest have been done and give almost same results as g++.
First remark regarding CMAKEFILE, clang give the following message:
```
clang-3.9: warning: optimization flag '-frounding-math' is not supported
```
This mean that we have put this flag every-where or almost but it is compiler dependent !!! If we pass to modern cmake we will be able to use `$<COMPILER_ID:GNU>,$<COMPILER_ID:Clang>` stuff to appropriately use -frounding-math or not
When using MUMPS or PASTIX clang need to have an explicit -lpthread. Those libraries where compiled with g++. Maybe with this compiler the -lpthread is automatically set. Like above if we pass to modern cmake we may encapsulate MUMPS or PASTIX target dependencies and fix cleanly those dependencies with `$<COMPILER_ID:GNU>,$<COMPILER_ID:Clang>` stuff.
What is more interesting is that clang have note exactly the same behavior as g++ regarding errors and warnings. For example with -Wconversion clang check implicit conversion miss formed (this is not possible with g++):
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main ()
{
size_t h=1234567891123456Lu;
int hi;
short hs;
hi=h;
hs=h;
cout<<"h "<<h<<endl;
cout<<"hi "<<hi<<endl;
cout<<"hs "<<hs<<endl;
hi=-1;
h=hi;
cout<<"h "<<h<<endl;
cout<<"hi "<<hi<<endl;
vector<int> v(3,1);
int l=v.size();
v[l-1]=4;
for (auto val : v)
cout<<val<<endl;
return 0;
}
```
With this code clang produce following messages:
```
clang++ -std=c++11 -Wconversion main.cc
main.cc:13:8: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'short' [-Wconversion]
hs=h;
~^
main.cc:20:7: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
h=hi;
~^~
main.cc:27:8: warning: implicit conversion changes signedness: 'int' to 'size_type' (aka 'unsigned long') [-Wsign-conversion]
v[l-1]=4;
~ ~^~
main.cc:12:8: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
hi=h;
~^
main.cc:26:13: warning: implicit conversion loses integer precision: 'size_type' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
int l=v.size();
~ ~~^~~~~~
5 warnings generated.
```
With eXlibris many messages of those types are issued ... For many it is only a matter of using `int` instead of `size_t` when dealing with STL container. But unfortunately this is masking more interesting ones that may be mistakes or error !http://git.gem.ec-nantes.fr/eXlibris/Xfiles/-/issues/25Keeping boost iostream isolated2018-05-18T07:23:37ZAlexis SALZMANKeeping boost iostream isolatedDiscussion around cmake point out that with some effort (little ?) we may hide boost iostram (used for gzip output) from Xfem interface.
That may also be treated as an extra interface in xInterface.
In one hand treating it in Xfem corr...Discussion around cmake point out that with some effort (little ?) we may hide boost iostram (used for gzip output) from Xfem interface.
That may also be treated as an extra interface in xInterface.
In one hand treating it in Xfem correspond to where it is used for now, in the other adding it as an Xinterface gives a way to use it everywhere.http://git.gem.ec-nantes.fr/eXlibris/Xfiles/-/issues/8Remove PARDIST/PARSEQ/PARALEL2018-09-07T11:43:49ZAlexis SALZMANRemove PARDIST/PARSEQ/PARALELRemove those compiler macro definition.
For AOMD put special guard to avoid usage of this library in parallelRemove those compiler macro definition.
For AOMD put special guard to avoid usage of this library in parallelParallel integrationhttp://git.gem.ec-nantes.fr/eXlibris/Xfiles/-/issues/7Guard2018-09-07T13:20:35ZAlexis SALZMANGuardSet guard on every point where parallel is an issue.
See commit 282fdb3Set guard on every point where parallel is an issue.
See commit 282fdb3Parallel integration