lanl / draco Goto Github PK
View Code? Open in Web Editor NEWAn object-oriented component library supporting radiation transport applications.
License: Other
An object-oriented component library supporting radiation transport applications.
License: Other
Cielito cannot see github. Regressions (rtt.lanl.gov/cdash) will show 'fail' for update. We will not fix this issue as this machine will be retired in 3 weeks. Once Trinitite regressions are working correctly, we will stop testing on Cielito and close this ticket.
Changes made since CMake 3.11 include the following.
Commands:
cmake_parse_arguments()
command gained a new PARSE_ARGV
mode to read arguments directly from ARGC
and ARGV#
variables inside a function()
body.if()
command gained new boolean comparison operations LESS_EQUAL
, GREATER_EQUAL
, STRLESS_EQUA
L, STRGREATER_EQUAL
, VERSION_LESS_EQUAL
, and VERSION_GREATER_EQUAL
.string(TIMESTAMP)
and file(TIMESTAMP)
commands gained support for the %a
and %b
placeholders. These are the abbreviated weekday and month names.Properties:
BINARY_DIR
directory property was added to get the absolute path to the binary directory corresponding to the source directory on which the property is read.BUILDSYSTEM_TARGETS
directory property was added to get the list of logical build system target names added by the project in a directory.SOURCE_DIR
directory property was added to get the absolute path to the source directory associated with a directory.SUBDIRECTORIES
directory property was added to get the list of subdirectories added by a project in a directory.WINDOWS_EXPORT_ALL_SYMBOLS
target property now applies to executable targets with the ENABLE_EXPORTS
property set.XCODE_FILE_ATTRIBUTES
source file property was added to tell the Xcode generator to generate custom content in the Xcode project attributes for the file.Modules:
CheckFortranSourceCompiles
module macro CHECK_Fortran_SOURCE_COMPILES
gained a SRC_EXT
option to specify a custom test Fortran source file extension.FindOpenMP
module learned to detect the OpenMP version (specification date) from the compiler.CTest:
FIXTURES_SETUP
, FIXTURES_CLEANUP
and FIXTURES_REQUIRED
test properties. When using regular expressions or --rerun-failed
to limit the tests to be run, a fixture’s setup and cleanup tests will automatically be added to the execution set if any test requires that fixture.ctest_configure()
, ctest_build()
, ctest_test(
), ctest_coverage()
, and ctest_upload()
commands gained a new CAPTURE_CMAKE_ERROR
option to capture any errors that occur as the commands run into a variable and avoid affecting the return code of the ctest(1)
process.Other:
cmake-server(7)
mode was added to provide semantic information about a CMake-generated buildsystem to clients through a JSON protocol. Currently all protocols are experimental and subject to change.cmake(1)
command learned a --trace-source=<file>
option.ccmake(1)
learned to support vim-like navigation bindings.cmake-gui(1
) gained a button to open the generated project file for Visual Studio Generators and the Xcode generator.indent/cmake.vim
and syntax/cmake.vim
from the vim-cmake-syntax project are now distributed with CMake.It appears that error colorization by gcc is confusing CDash's output. Output may look like this..
[NON-XML-CHAR-0x1B][01m[NON-XML-CHAR-0x1B][Kg++:[NON-XML-CHAR-0x1B][m[NON-XML-CHAR-0x1B][K [NON-XML-CHAR-0x1B][01;31m[NON-XML-CHAR-0x1B][Kerror: [NON-XML-CHAR-0x1B][m[NON-XML-CHAR-0x1B][KCMakeFiles/Ut_dsxx_tstFMA_exe.dir/tstFMA.cc.o: ...
I think changing the gcc flags -fdiagnostics-color=always
to -fdiagnostics-color=auto
will fix this.
Jae and KT discussed this earlier today. The superlu-dist API has changed. We would like to support both 4.X and 5.X.
In 5.X, the type superlu_options_t
is not defined.
ifort-16 complains about deprecated flag -fopenmp-report0
When using the Cray compile wrappers, rely on the compile wrapper to set the -xhost or avx512 compile options.
if( NOT CRAY_PE)
include(CheckCCompilerFlag)
check_c_compiler_flag(-xHost HAS_XHOST)
toggle_compiler_flag( HAS_XHOST "-xHost" "C;CXX" "")
endif()
Our build system is throwing away the -Werror
compiler flag so the WERROR=ON
CI check is identical to the no-opts check. This can be fixed, but I will need to pass the extra compile flags to cmake with a new variable. Maybe we should consider honoring ENV{CFLAGS}, ENV{CXXFLAGS} and ENV{FFLAGS}
.
Visual Studio 2013 doesn't provide complete C++11 support. Move testing (and build system support) target to Visual Studio 2017.
Key items
New Features
Platforms
Generators
Commands
Variables
Properties
Modules
Reference
The Draco library has both .t.hh and .i.hh files containing definitions of templates declared in .hh files. I see no clear distinction between the two. If there is such a distinction which I have missed, where is it documented?
Here are some of the reasons to switch to OpenMPI 1.10 (from 1.6.5). These changes will help Jayenne in several ways:
These points are present in the changelogs as well:
OpenMPI 1.7
OpenMPI 1.7.4
OpenMPI 1.7.5
OpenMPI 1.8
OpenMPI 1.8.2
The logic in sync_repository.sh that is used to kick of CI testing on LANL internal systems may occasionally start more than one set of tests for the same PR. For example, this script might report something like this:
==> git fetch origin +refs/pull/*:refs/pull/*
From https://github.com/losalamos/Draco
62e3f64..75d7891 refs/pull/214/head -> refs/pull/214/head
+ 05f55ee...b8d6437 refs/pull/214/merge -> refs/pull/214/merge (forced update)
Because there are two entries for PR 214, tests for 214 will be started twice. This is easily fixed by use of sort -u
and will be submitted as a PR soon.
All PRs on github.com/lanl/draco are failing the Travis checks due to the error:
1.32s$ pip install --upgrade setuptools
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#snimissingwarning.
SNIMissingWarning
I'll need to update the travis build environment to fix this.
Evaluate the usefulness of these static checks...
Ref #252.
It is hard for me to understand how these changes could cause so many failures Maybe we should revert the merge.
The one place that is tricky is in CDI.cc
where I change if(T==0.0)
to a soft_equiv(T,0.0,2.0e-16)
. Maybe we should use min()
instead of epsilon()
.
-kt
c4's Invert_Comm_Map currently takes a std::vector as input and output arguments, which are the vector of procs that the current proc will send/receive information to/from. Instead, it should take a std::map<int, size_t>, that maps proc number to the data size to be sent/received. Here, "size" is up to the user; it could be the number of elements in a container, or the actual number of bytes; it doesn't matter to this routine.
This change should give a very small decrease in performance, because size_t values would be communicated, instead of int values. But it would allow users to eliminate the extra communication step of determining the size of information to be received.
Should a particle know whether it's analog, DDMC, random walk, etc.? I ask this because the particle knows several meta-state things about itself (cell, communication status, advection state) but there are still a lot of extra flags inside the transporter that get passed along with the particle that could be removed if the particle knew more about itself. I think we could include extra state data inside of the weird packed integer. From a design perspective, is it better to keep the particle state smaller and pass flags or to add more state data to the particle?
New features:
Deprecated features (that might cause build issues):
Reference: https://cmake.org/cmake/help/v3.6/release/3.6.html
The script used to generate a monthly metrics report (code coverage, loc) is no longer working after draco was moved to github. I think this has to do with new paths used by the regression system. I will look into patching this script.
New features found in CMake-3.8
CUDA
C & C++
Commands
Variables
Properties
Modules
CTest
Other
Deprecated and Removed Features
Other Changes
Do we need to run numdiff
under srun?
CMake-3.9 has some new features that Draco should consider adopting. A few interesting items are:
Commands
Variables
Properties
Modules
CTest
Other
Other Changes
Documentation is available at: https://cmake.org/cmake/help/v3.9
Release notes appear below and are also published at https://cmake.org/cmake/help/v3.9/release/3.9.html
Example:
CMake Warning (dev) at config/component_macros.cmake:299 (add_library):
Policy CMP0069 is not set: INTERPROCEDURAL_OPTIMIZATION is enforced when
enabled. Run "cmake --help-policy CMP0069" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.
INTERPROCEDURAL_OPTIMIZATION property will be ignored for target
'Lib_dsxx'.
Call Stack (most recent call first):
src/ds++/CMakeLists.txt:93 (add_component_library)
This warning is for project developers. Use -Wno-dev to suppress it.
Ref: https://cmake.org/cmake/help/git-stage/policy/CMP0069.html
Some good suggestions from https://github.com/apache/arrow/blob/master/appveyor.yml
Also consider using docker with Appveyor:
Convert the contributors list into a map and provide a function to intelligently wrap at 80 columns.
Cloning jayenne can be slow. Change the checkout command to use --depth 1
to speed up the checkout step.
Don't default to Nightly Dashboards. Default to Experimental instead.
We should be able to copy the basic concepts from https://github.com/LLNL/spack. They use flake8 on python code, but the travis.yml code should be very similar (see https://github.com/LLNL/spack/blob/develop/.travis.yml)
Provide detailed instructions for using spack to generate all required third party libraries and tools.
This would allow developers to build and test draco from any Linux machine w/o specialized vendor support.
Possibly related to merging #252
warning: "__cplusplus" is not defined [-Wundef]
The tail from a recent log
$ if [[ ${COVERAGE} ]]; then codecov --gcov-exec gcov-6; fi
_____ _
/ ____| | |
| | ___ __| | ___ ___ _____ __
| | / _ \ / _ |/ _ \/ __/ _ \ \ / /
| |___| (_) | (_| | __/ (_| (_) \ V /
\_____\___/ \____|\___|\___\___/ \_/
v2.0.9
==> Detecting CI provider
Travis Detected
==> Preparing upload
==> Processing gcov (disable by -X gcov)
Executing gcov (find /home/travis/build/lanl/Draco -type f -name '*.gcno' -exec gcov-6 -pb {} +)
==> Collecting reports
+ /home/travis/build/lanl/Draco/openmpi-1.10.5/ompi/mca/io/romio/romio/confdb/aclocal_coverage.m4 bytes=3585
==> Appending environment variables
+ TRAVIS_OS_NAME
==> Uploading
.url https://codecov.io
.query pr=305&service=travis&package=py2.0.9&yaml=.codecov.yml&job=278835013&build=1087.2&branch=develop&commit=e71f674f84a6c837683485b18200a88677587b88&slug=lanl%2FDraco
Pinging Codecov...
Uploading to S3...
https://codecov.io/github/lanl/Draco/commit/e71f674f84a6c837683485b18200a88677587b88
Comments from Rob Cunningham (2017-07-27)
You’re right, this is indeed weird. And I’d say you have the right idea — I believe Open MPI 2.x here at LANL has some explicit configuration settings that favor our local clusters. Sockets and pipes breaking suggest Open MPI 2.x looks to be making assumptions about the OS version, or the interconnect fabric/hardware, something inherent in the design on the HPC cluster — some component that is different on your CCS departmental servers (as you suggest).
The intermittent nature of the problem is troublesome. I wonder about system load, network congestion, I/O traffic, etc. That is, other jobs running on the CCS servers. Does this happen on a quiet system?
When I first heard the description, I assumed it was the problem we usually see with Totalview — the symbol tables generated by the compiler. That still might be worth a brief test to see if the same thing happens with a different compiler. However, that’s a real stretch, it’s hard to tie together a symbol table misinterpretation to a pipe error.
https://include-what-you-use.org/
spack location -i [email protected]
cmake -D IWYU_LLVM_INCLUDE_PATH=${llvm_loc}/include -D IWYU_LLVM_LIB_PATH=${llvm_loc}/lib \
-D CURSES_CURSES_LIBRARY=/scratch/vendors/spack.20180425/opt/spack/linux-rhel7-x86_64/clang-6.0.0/ncurses-6.0-33aiabd5htmhlzctx64gh2zkspprw7fm/lib/libncurses.so \
-DCMAKE_INSTALL_PREFIX=${llvm_loc} ../include-what-you-use
module load $dracomodules
module swap gcc llvm
LD_LIBRARY_PATH
.export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/scratch/vendors/spack.20180425/opt/spack/linux-rhel7-x86_64/clang-6.0.0/ncurses-6.0-33aiabd5htmhlzctx64gh2zkspprw7fm/lib
cmakedebug \
"-DCMAKE_CXX_INCLUDE_WHAT_YOU_USE=${llvm_loc}/bin/include-what-you-use;-Xiwyu;--transitive_includes_only" \
~/draco
make VERBOSE=1 Lib_dsxx
Assert.cc
but fails for DracoStrings.cc
cd /scratch/kellyt/llvm-mpid/d/src/ds++ && \
/scratch/vendors/spack.20180425/opt/spack/linux-rhel7-x86_64/clang-6.0.0/cmake-3.11.1-4eusqiiadp5xyyi7ai3cr2nbartqubbq/bin/cmake \
-E __run_co_compile \
--iwyu="/scratch/vendors/spack.20180425/opt/spack/linux-rhel7-x86_64/gcc-4.8.5/llvm-6.0.0-qtihyueuqp7m7meo6lq26yne5f7qoech/bin/include-what-you-use;-Xiwyu;--transitive_includes_only" \
-- /scratch/vendors/spack.20180425/opt/spack/linux-rhel7-x86_64/gcc-4.8.5/llvm-6.0.0-qtihyueuqp7m7meo6lq26yne5f7qoech/bin/clang++ \
-DLib_dsxx_EXPORTS -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 \
-D__STDC_CONSTANT_MACROS -I/home/kellyt/draco/src -I/scratch/kellyt/llvm-mpid/d/src/ds++ \
-Wcast-align -Wpointer-arith -Wall -Wno-long-long -pedantic -stdlib=libc++ \
-Wno-potentially-evaluated-expression -Wno-undefined-var-template -fopenmp=libomp -g \
-fno-inline -O0 -Wextra -DDEBUG -Woverloaded-virtual -fPIC -std=c++14 \
-o CMakeFiles/Lib_dsxx.dir/DracoStrings.cc.o -c /home/kellyt/draco/src/ds++/DracoStrings.cc
Error running \
'/scratch/vendors/spack.20180425/opt/spack/linux-rhel7-x86_64/gcc-4.8.5/llvm-6.0.0-qtihyueuqp7m7meo6lq26yne5f7qoech/bin/include-what-you-use': /scratch/kellyt/include-what-you-use/iwyu.cc:3311: \
Assertion failed: class_decl && "TemplateSpecializationType is not a TplSpecDecl?"
Child aborted
Fortran
" language ("C
", "CXX
", and "CUDA
" were supported previously). See the "CMAKE_<LANG>_COMPILER_LAUNCHER
" variable and "<LANG>_COMPILER_LAUNCHER
" target property for details.add_library()
" and "add_executable()
" commands can now be called without any sources and will not complain as long as sources are added later via the "target_sources()
" command.target_compile_definitions()
" command learned to set the "INTERFACE_COMPILE_DEFINITIONS
" property on Imported Targets.target_compile_features()
" command learned to set the "INTERFACE_COMPILE_FEATURES
" property on Imported Targets.target_compile_options()
" command learned to set the "INTERFACE_COMPILE_OPTIONS
" property on Imported Targets.target_include_directories()
" command learned to set the "INTERFACE_INCLUDE_DIRECTORIES
" property on Imported Targets.target_sources()
" command learned to set the "INTERFACE_SOURCES
" property on Imported Targets.target_link_libraries()
" command learned to set the "INTERFACE_LINK_LIBRARIES
" property on Imported Targets.COMPILE_DEFINITIONS
" source file property learned to support "`generator expressions".COMPILE_OPTIONS
" source file property was added to manage list of options to pass to the compiler.CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
" variable was added to enable setting of default permissions for directories created implicitly during installation of files by "install()
" and "file(INSTALL)
", e.g. during "make install
".CMAKE_JOB_POOLS
" variable was added specify a value to use for the "JOB_POOLS
" property. This enables control over build parallelism with command line configuration parameters when using the Ninja generator.CMAKE_CUDA_SEPARABLE_COMPILATION
" variable was added to initialize the "CUDA_SEPARABLE_COMPILATION
" target property on targets when they are created.COMPILE_DEFINITIONS
" source file property learned to support "`generator expressions".COMPILE_OPTIONS
" source file property was added to manage list of options to pass to the compiler.CheckIncludeFile
" module "check_include_file
" macro learned to honor the "CMAKE_REQUIRED_LIBRARIES
" variable.CheckIncludeFileCXX
" module "check_include_file_cxx
" macro learned to honor the "CMAKE_REQUIRED_LIBRARIES
" variable.CheckIncludeFiles
" module "check_include_files
" macro learned to honor the "CMAKE_REQUIRED_LIBRARIES
" variable.CheckIncludeFiles
" module "CHECK_INCLUDE_FILES()
" command gained a "LANGUAGE
" option to specify whether to check using the "C
" or "CXX
" compiler.FindBLAS
" and "FindLAPACK
" modules learned to support FLAME "blis
" and "libflame
".FindDoxygen
" module "doxygen_add_docs()
" function now supports a new "DOXYGEN_VERBATIM_VARS
" list variable. Any "DOXYGEN_...
" variable contained in that list will bypass the automatic quoting logic, leaving its contents untouched when transferring them to the output "Doxyfile
".GLOBAL
" option to "`add_library()".cmake(1)
" "--open <dir>
" command-line option was added to open generated IDE projects like Visual Studio solutions or Xcode projects.CMakeCache.txt
" format does not support newlines in values, values containing newlines are now truncated before writing to the file. In addition, a warning comment is written to the cache file, and a warning message is displayed to the user on the console.Currently, the regression system will run valgrind if a debug regression with gcc-4.8.5 is started on ccscs7. Instead of implictly turning on valgrind for this combination of parameters, make the option explicit with -e valgrind
passed to regression-master.sh.
Consider removing CPP pragma code used for suppressing and simply duplicating code in each switch statement case block.
The PGI compiler does not provide std::array. config/platform_checks.cmake
must be updated to avoid setting HAVE_CXX11_ARRAY
.
Lmod is now available on ccs-net machines. I would like to make this the default module system on ccs-net machines.
Testing:
switch_to_lmod
To Do:
environment/bashrc/.bashrc_linux64
to include the setup found in switch_to_lmod
(environment/bin/bash_functions.sh
).draco-6_19_1
, but not merged into the 'develop' branch.draco-6_19_1
.A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.