AlabamaASRL / asset_asrl

https://alabamaasrl.github.io/asset_asrl/
Apache License 2.0
29 stars 6 forks source link

[Bug] Can't build Docker image #14

Closed manuel-j-diaz closed 1 year ago

manuel-j-diaz commented 1 year ago

Host OS: WSL2

Running docker build -t asset . on Dockerfile, steps 6 of 7 build successfully, but the last does not:

Step 7/7 : RUN . /root/.bashrc   && export CC=/usr/bin/clang-15   && export CXX=/usr/bin/clang++-15   && export MKLROOT=/opt/miniconda3/envs/asset   && git clone https://github.com/AlabamaASRL/asset_asrl.git   && cd asset_asrl   && git submodule update --init --recursive   && mkdir build   && cd build/   && cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=true ..   && cmake --build . -j4   && cd /   && rm -rf /asset_asrl
 ---> Running in ad68496de0a6
/bin/sh: 13: /root/.bashrc: shopt: not found
/bin/sh: 21: /root/.bashrc: shopt: not found
Cloning into 'asset_asrl'...
Submodule 'dep/eigen' (https://gitlab.com/wgledbetter/eigen.git) registered for path 'dep/eigen'
Submodule 'dep/fmt' (https://github.com/fmtlib/fmt.git) registered for path 'dep/fmt'
Submodule 'dep/pybind11' (https://github.com/pybind/pybind11.git) registered for path 'dep/pybind11'
Cloning into '/asset_asrl/dep/eigen'...
Cloning into '/asset_asrl/dep/fmt'...
Cloning into '/asset_asrl/dep/pybind11'...
Submodule path 'dep/eigen': checked out '5d33c67444ec8c49c01d3ca9de9be25f9e1f635c'
Submodule path 'dep/fmt': checked out 'fd41110d383b7240231718f009b21498e3984ccc'
Submodule path 'dep/pybind11': checked out '2d59b43cbf8793119fb92726ce8eb33441469e3e'
-- The CXX compiler identification is Clang 15.0.6
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/clang++-15 - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- pybind11 v2.11.0 dev1
-- Found PythonInterp: /opt/miniconda3/envs/asset/bin/python (found suitable version "3.9.15", minimum required is "3.6")
-- Found PythonLibs: /opt/miniconda3/envs/asset/lib/libpython3.9.so
-- Performing Test HAS_FLTO
-- Performing Test HAS_FLTO - Success
-- Performing Test HAS_FLTO_THIN
-- Performing Test HAS_FLTO_THIN - Success
-- Module support is disabled.
-- Version: 9.0.0
-- Build type: Release
-- CXX_STANDARD: 17
-- Performing Test has_std_17_flag
-- Performing Test has_std_17_flag - Success
-- Performing Test has_std_1z_flag
-- Performing Test has_std_1z_flag - Success
-- Required features: cxx_variadic_templates
-- Performing Test HAS_NULLPTR_WARNING
-- Performing Test HAS_NULLPTR_WARNING - Success
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- libiomp5.so
-- MKL_INTERFACE_LIBRARY = /opt/miniconda3/envs/asset/lib/libmkl_intel_lp64.so
-- MKL_SEQTHR_LIBRARY = /opt/miniconda3/envs/asset/lib/libmkl_intel_thread.so
-- MKL_CORE_LIBRARY = /opt/miniconda3/envs/asset/lib/libmkl_core.so
-- MKL_TBB_LIBRARY =
-- MKL_OMP_LIBRARY = /usr/lib/x86_64-linux-gnu/libiomp5.so
-- Found MKL: /opt/miniconda3/envs/asset/lib/libmkl_intel_lp64.so;/opt/miniconda3/envs/asset/lib/libmkl_intel_thread.so;/opt/miniconda3/envs/asset/lib/libmkl_core.so;/usr/lib/x86_64-linux-gnu/libiomp5.so
-- Found Python: /opt/miniconda3/envs/asset/bin/python3.9 (found version "3.9.15") found components: Interpreter Development Development.Module Development.Embed
-- ASSET will be installed to /root/.local/lib/python3.9/site-packages
-- CMAKE DIR LOC/asset_asrl
--
--
-- CMAKE DIR LOC/asset_asrl/src
-- CMAKE PROJ LOC/asset_asrl
-- Cleaning pyasset install directory
-- Configuring done
-- Generating done
-- Build files have been written to: /asset_asrl/build
[  4%] Building CXX object dep/fmt/CMakeFiles/fmt.dir/src/format.cc.o
[  6%] Building CXX object src/CMakeFiles/psiopt.dir/Solvers/PSIOPT.cpp.o
[  4%] Building CXX object src/CMakeFiles/pch.dir/cmake_pch.hxx.pch
[  8%] Building CXX object src/CMakeFiles/utils.dir/Utils/ColorText.cpp.o
[ 10%] Building CXX object dep/fmt/CMakeFiles/fmt.dir/src/os.cc.o
[ 12%] Building CXX object src/CMakeFiles/utils.dir/Utils/GetCoreCount.cpp.o
[ 14%] Building CXX object src/CMakeFiles/utils.dir/Utils/MemoryManagement.cpp.o
[ 16%] Building CXX object src/CMakeFiles/pch.dir/pch.cpp.o
[ 18%] Linking CXX shared library libfmt.so
[ 18%] Built target fmt
Cleaning asset_asrl install directory
Copied asset_asrl to /root/.local/lib/python3.9/site-packages
[ 18%] Built target pyassetsrc
[ 20%] Building CXX object src/CMakeFiles/psiopt.dir/Solvers/NonLinearProgram.cpp.o
[ 22%] Linking CXX static library libpch.a
[ 22%] Built target pch
[ 25%] Building CXX object src/CMakeFiles/vectorfunctions.dir/VectorFunctions/ASSET_VectorFunctions.cpp.o
[ 27%] Linking CXX static library libutils.a
[ 27%] Built target utils
[ 29%] Building CXX object src/CMakeFiles/optimalcontrol.dir/OptimalControl/ASSET_OptimalControl.cpp.o
[ 31%] Building CXX object src/CMakeFiles/psiopt.dir/Solvers/Jet.cpp.o
[ 33%] Building CXX object src/CMakeFiles/psiopt.dir/Solvers/OptimizationProblemBase.cpp.o
[ 35%] Building CXX object src/CMakeFiles/psiopt.dir/Solvers/OptimizationProblem.cpp.o
[ 37%] Building CXX object src/CMakeFiles/optimalcontrol.dir/OptimalControl/ODEPhaseBase.cpp.o
/asset_asrl/src/OptimalControl/ODEPhaseBase.cpp:671:3: warning: non-void lambda does not return a value in all control paths [-Wreturn-type]
  };
  ^
[ 39%] Linking CXX static library libpsiopt.a
[ 39%] Built target psiopt
[ 41%] Building CXX object src/CMakeFiles/astro.dir/Astro/ASSET_Astro.cpp.o
Killed
gmake[2]: *** [src/CMakeFiles/optimalcontrol.dir/build.make:94: src/CMakeFiles/optimalcontrol.dir/OptimalControl/ODEPhaseBase.cpp.o] Error 137
gmake[2]: *** Waiting for unfinished jobs....
[ 43%] Building CXX object src/CMakeFiles/vectorfunctions.dir/VectorFunctions/VectorFunctionBuildPart1.cpp.o
Killed
gmake[2]: *** [src/CMakeFiles/astro.dir/build.make:78: src/CMakeFiles/astro.dir/Astro/ASSET_Astro.cpp.o] Error 137
gmake[1]: *** [CMakeFiles/Makefile2:400: src/CMakeFiles/astro.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
[ 45%] Building CXX object src/CMakeFiles/vectorfunctions.dir/VectorFunctions/VectorFunctionBuildPart2.cpp.o
gmake[1]: *** [CMakeFiles/Makefile2:322: src/CMakeFiles/optimalcontrol.dir/all] Error 2
[ 47%] Building CXX object src/CMakeFiles/vectorfunctions.dir/VectorFunctions/ArgsSegBuildPart1.cpp.o
Killed
gmake[2]: *** [src/CMakeFiles/vectorfunctions.dir/build.make:110: src/CMakeFiles/vectorfunctions.dir/VectorFunctions/VectorFunctionBuildPart2.cpp.o] Error 137
gmake[2]: *** Waiting for unfinished jobs....
gmake[1]: *** [CMakeFiles/Makefile2:296: src/CMakeFiles/vectorfunctions.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2
The command '/bin/sh -c . /root/.bashrc   && export CC=/usr/bin/clang-15   && export CXX=/usr/bin/clang++-15   && export MKLROOT=/opt/miniconda3/envs/asset   && git clone https://github.com/AlabamaASRL/asset_asrl.git   && cd asset_asrl   && git submodule update --init --recursive   && mkdir build   && cd build/   && cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=true ..   && cmake --build . -j4   && cd /   && rm -rf /asset_asrl' returned a non-zero code: 2

I'm not sure why ASSET_Astro.cpp.o fails to build.

jasonmeverett commented 1 year ago

Can you try reducing the number of cores when building?

Change

cmake --build . -j4

To

cmake --build . -j2
jbpezent commented 1 year ago

Yea i agree with @jasonmeverett , looks like it's running out of ram, if I remember correctly, unless you explicitly increase it, wsl2 is limited to 8 gigs of ram by default regardless of how much the computer has, -j4 would definitely saturate that and kill the process, try -j2 or j1 to be safe

jasonmeverett commented 1 year ago

If you don't care much for building by source, there's a pre-built ASSET image you can pull down with:

docker pull jasonmeverett/asset-docker
manuel-j-diaz commented 1 year ago

Thanks! That did it. My WSL2 was using 4GB of RAM. After I bumped it to 12GB, I never saw more than 7GB being used.

Thanks again for the suggestions.

jasonmeverett commented 1 year ago

@manuel-j-diaz you could also consider using the example project layout, avoiding the need to build ASSET: https://github.com/jasonmeverett/asset-example-project