Initial pull request for PyTrilinos recipe#3361
Initial pull request for PyTrilinos recipe#3361isuruf merged 33 commits intoconda-forge:masterfrom wfspotz:master
Conversation
|
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
|
This has both pytrilinos and trilinos libraries. Is it possible to split them into 2 packages, one with all the C/C++ libraries and the other with the python libraries? |
|
Trilinos is a suite of packages — currently about 54 — and PyTrilinos is one of them. You can enable or disable any package, subject to dependencies. So you build the whole thing, and PyTrilinos is either enabled or disabled. The build I am proposing here enables only the packages that has python libraries. It is not designed to be split apart.
We can call it “trilinos" rather than “pytrilinos”. I don’t know if that helps.
|
|
@isuruf Is your question in response to the timeout on Travis? |
|
timeout can be fixed by removing |
|
I suggested splitting because the C/C++ libraries will be tied to python and pull in python to an environment when all you want is the C/C++ library. Also if you are working in a python3 environment and only want the C/C++ library, you can't install it because |
|
That said, for the first iteration, we can have it as it is. |
| url: http://trilinos.csbsju.edu/download/files/trilinos-{{ version }}-Source.tar.gz | ||
| sha256: {{ sha256 }} | ||
| patches: | ||
| - patch.txt |
There was a problem hiding this comment.
Can you change the file extension to .patch? Also can you explain in a comment above why this patch is needed?
There was a problem hiding this comment.
The patch is needed because my build system was calling a script I had written with the shebang line
#! ${PYTHON_EXECUTABLE}
which expands out to the 256+ character path for python, but the Linux environment for conda-forge limits the shebang line to 80 characters. The fix was to run the script by specifying the python executable on the command line rather than depending on the shebang. This fix required modifying several CMakeLists.txt files.
|
|
||
| build: | ||
| number: 0 | ||
| skip: true # [win] |
|
On Linux, the recipe succeeds until it gets to the testing portion of but I am afraid that the script will end when I get to |
| -D BUILD_SHARED_LIBS:BOOL=ON \ | ||
| -D TPL_ENABLE_MPI:BOOL=ON \ | ||
| -D MPI_BASE_DIR:PATH=$PREFIX \ | ||
| -D MPI_EXEC:FILEPATH=$PREFIX/bin/mpiexec \ |
There was a problem hiding this comment.
Try adding, -D MPI_EXEC_PRE_NUMPROCS_FLAGS=--allow-run-as-root
There was a problem hiding this comment.
So how will this help?
There was a problem hiding this comment.
Tests fail with the message below because we are running as root in the docker container,
--------------------------------------------------------------------------
mpiexec has detected an attempt to run as root.
Running at root is *strongly* discouraged as any mistake (e.g., in
defining TMPDIR) or bug can result in catastrophic damage to the OS
file system, leaving your system in an unusable state.
You can override this protection by adding the --allow-run-as-root
option to your cmd line. However, we reiterate our strong advice
against doing so - please do so at your own risk.
--------------------------------------------------------------------------
There was a problem hiding this comment.
Also add -D MPI_EXEC_MAX_NUMPROCS=$CPU_COUNT to limit the number of processes that are used in travis-ci.
|
@isuruf Any idea what from CircleCI is referring to? |
|
Docker image doesn't have ssh installed, this suggests a workaround, open-mpi/ompi#1838 (comment) |
|
@isuruf I'm stumped. I can't figure out how to get around the MCA parameter error. The suggested workaround doesn't help. |
Build script for Mac OS X and Linux that builds PyTrilinos and all Trilinos packages supported by PyTrilinos.
Three changes: (1) skip for win OR python 3; (2) refer to new patch filename; (3) change from numpy x.x to numpy 1.7 in build section and >=1.7 in run section.
This change to calling ctest will output test results when there is a failure, to help with debugging.
The CPU limit is preventing tests I want to run and debug from running. Note that all of these MPI tests are relatively small on a small number of MPI nodes. Oversubscribing -- say, a 4 processor job on 2 physical procesors -- is inefficient, but still tests what I want tested.
|
I rebased and pushed a fix |
|
@isuruf Progress! The pre-install tests I run in This is true on both Circle-CI and Travis-CI. The |
|
@isuruf How does |
This reverts commit 3f85d37.
|
@isuruf So what is happening with Travis-CI now? The job log is empty. |
|
@wfspotz, thanks for your contribution. A feedstock (https://github.com/conda-forge/pytrilinos-feedstock) will be created soon. |
|
The feedstock page says that the Linux build is failing. I finally got it to report the output of the build phase to me. Everything looks okay, but at the very end, I see this: |
No description provided.