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

WIP: Hdf5 for particle dumping #76

Closed
wants to merge 79 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
5280700
Format tweaks.
Dec 30, 2018
49a2f0f
Fix what appears to be a memory error that dates back to the v407 ver…
Jan 7, 2019
7f1f5a4
Merge branch 'devel' of /home/wdn/repos/git/vpic into devel_wdn
Jan 11, 2019
d122704
Add configurable and documented build scripts for building VPIC on LA…
Jan 31, 2019
c8d0849
Additional updates to documentation.
Jan 31, 2019
aeabefd
Update compiler option documentation to make more accurate.
Jan 31, 2019
c376811
Reorder options a bit.
Jan 31, 2019
c96f8c5
For the lanl-ats1 script, make sure that the Cray programming environ…
Jan 31, 2019
d0adae8
Merge branch 'devel' of ../vpic_losalamos_devel into devel
Feb 2, 2019
c8aa82a
Merge branch 'devel' of ../vpic_losalamos_devel into devel
Feb 11, 2019
bb2baea
Fix issues and errors in use of float literals introduced in a previo…
Feb 11, 2019
8ab387d
Add CMake support for configuring a VPIC build with the legacy partic…
Feb 11, 2019
8515047
Separate lanl-ats1 script into two separate scripts, one for Haswell …
Feb 19, 2019
3782d9a
Reorder build configuration options to something that seems more sens…
Feb 20, 2019
f6d1c90
Merge branch 'devel' into devel
rfbird Feb 28, 2019
7e396dc
Add more documentation about various available CMake configuration va…
Feb 28, 2019
15181b8
Merge branch 'devel' of github.com:dnystrom1/vpic into devel
Feb 28, 2019
f13d916
Merge branch 'devel' of ../vpic_losalamos_devel into devel
Mar 4, 2019
af93571
Merge branch 'devel' of /home/wdn/repos/git/vpic into devel_wdn
Mar 4, 2019
46be479
Merge branch 'devel_wdn' of /home/wdn/repos/git/vpic into devel_wdn
Mar 4, 2019
61ad472
Switch all C files to C++ files unless it is explicit that they need …
Mar 11, 2019
3a03a88
Format tweaks.
Jul 10, 2019
58a6873
Initial beginning of ARM Neon intrinsics support.
Jul 10, 2019
304922e
Add CMake support for ARM NEON intrinsics.
Jul 15, 2019
c68b58a
Add NEON support for v4float binary operators.
Jul 15, 2019
ab4dd10
Add float32x4_t type to the v4_neon union.
Jul 15, 2019
66ad58a
Add ARM NEON intrinsics support for fma and fms.
Jul 15, 2019
f891774
Remove some tabs. Format tweaks. Add NEON intrinsics support for cont…
Jul 15, 2019
2ddef89
Add NEON intrinsics support for load_4x4_tr and store_4x4_tr.
Jul 15, 2019
2a2fedd
Add NEON intrinsics support for v4float assignment operators.
Jul 15, 2019
29c7a56
Add NEON intrinsics support for rsqrt and rcp functions.
Jul 15, 2019
a482375
Add NEON intrinsics support for transpose function.
Jul 15, 2019
7353705
Fix a typo.
Jul 15, 2019
4a80b01
Add support for benchmarking center_p and uncenter_p.
Jul 16, 2019
0c16a20
Change number of iterations for uncenter/center loop.
Jul 16, 2019
ec22f2c
Add NEON intrinsic support for v4float logical operators to v4_neon.h.
Jul 17, 2019
6be57c2
Try an implementation of load/store transpose operations using vld4q_…
Jul 17, 2019
e7fd3e0
Comment out new implementations for load_4x4_tr and store_4x4_tr sinc…
Jul 18, 2019
d9b7adb
More work on v4_neon support.
Jul 22, 2019
b62ab7a
Add another NEON implementation of transpose.
Jul 22, 2019
70191a6
Add new NEON implementations for load and store transpose functions.
Jul 23, 2019
2762aec
Try another idea for implementing the transpose function.
Jul 23, 2019
d82f07d
Add support for using load_4x8_tr and load_4x16_tr for the ARM NEON c…
Jul 25, 2019
b2f9017
Add test cases to V4 unit tests.
Jul 25, 2019
15b8da3
Fix a declaration error.
Jul 25, 2019
60703bd
Test different memory alignment for V4 NEON implementation.
Jul 25, 2019
cbdc2cc
Format tweak.
Jul 28, 2019
577b42e
Do not use special test version of V4 NEON implementations of center_…
Jul 29, 2019
7c6c53d
Revert rcp and rsqrt functions back to their portable versions to try…
Jul 29, 2019
bd000c4
Format tweaks and cleanup before merging into other branches.
Aug 5, 2019
d938848
Fix issue with undefined symbol.
Aug 5, 2019
78aa8a4
Try a fix to a unit test failure for the Altivec case.
Aug 5, 2019
562ec80
Modify TEST_CASE_load_4x2_tr to see if I can get it to pass on IBM wi…
Aug 5, 2019
990e9d9
Merge branch 'devel' of /home/wdn/repos/git/vpic into devel
Aug 5, 2019
58be63f
Merge branch 'devel' of /home/wdn/repos/git/vpic into devel_wdn
Aug 5, 2019
cbcc958
Remove a test hack.
Aug 6, 2019
0a2044e
Merge branch 'devel_wdn' of /home/wdn/repos/git/vpic into devel_wdn
Aug 6, 2019
10c2adb
Remove some experimental NEON intrinsic code.
Aug 6, 2019
23144b8
Remove more code that was used for testing ARM NEON intrinsics version.
Aug 6, 2019
679b6bb
Remove some dead code.
Aug 6, 2019
41b7d3e
Do not disable dynamic resizing since it is not disabled in github.
Aug 6, 2019
8599273
added global partition data to grid
rfbird Aug 13, 2019
08a2d2d
first pass adding a compiling port of viou for HDF5 vpic IO
rfbird Aug 13, 2019
d1ba88c
fixed small bug in global topoly setting and add field_interval value…
rfbird Aug 13, 2019
1836475
updated field interval to be the correct value
rfbird Aug 13, 2019
9c6fdeb
Merge branch 'devel' of https://github.com/lanl/vpic into hdf5
rfbird Aug 13, 2019
7a10247
clean up hdf5 build system. require paralle, and includes and guard e…
rfbird Oct 10, 2019
6fc3fdf
merge master and update build system to pass defines at the right time
rfbird Oct 10, 2019
5f8211b
allow user to change dumping flags in the deck
rfbird Oct 10, 2019
15d8b89
default init hdf5 dumping structs
rfbird Oct 14, 2019
7297106
temporarily disable second hydro dumping species as it breaks the cur…
rfbird Oct 15, 2019
8143ab3
modify sprinf of size_t to be the correct zu
rfbird Oct 15, 2019
eaa4c3c
remove scidac 407 ifdefs
rfbird Oct 15, 2019
6ad27e8
fix global static and re-enable multiple species dumping
rfbird Oct 15, 2019
f818491
first pass adding support for converting p->i to a global i
rfbird Oct 16, 2019
73e0716
add loop ovr particles and ability to write custom global pi to file
rfbird Oct 16, 2019
843babb
tidied up global particle id convert, close to correct now
rfbird Oct 22, 2019
bd976c8
apply changes as discussed with Patrick to converge on right answer o…
rfbird Oct 30, 2019
29da114
remove loop over particle species in dump particles hdf5 function tha…
rfbird Nov 12, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 28 additions & 32 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,10 @@ option(USE_LEGACY_SORT "Enable Legacy Sort Implementation" OFF)

option(VPIC_PRINT_MORE_DIGITS "Print more digits in VPIC timer info" OFF)

option(ENABLE_OPENSSL "Enable OpenSSL support for checksums" OFF)

option(DISABLE_DYNAMIC_RESIZING "Prevent particle arrays from dynamically resizing during a run" OFF)

option(USE_HDF5 "Enable HDF5 for use during IO. VPIC does not help you install HDF5" OFF)

# option to set minimum number of particles
set(SET_MIN_NUM_PARTICLES AUTO CACHE STRING "Select minimum number of particles to use, if using dynamic particle array resizing")

Expand Down Expand Up @@ -125,24 +125,11 @@ if(NOT SET_MIN_NUM_PARTICLES STREQUAL "AUTO")
add_definitions(-DMIN_NP=${SET_MIN_NUM_PARTICLES})
endif()

#------------------------------------------------------------------------------#
# OpenSSL
#------------------------------------------------------------------------------#

if(ENABLE_OPENSSL)
find_package(OpenSSL REQUIRED)

include_directories(${OPENSSL_INCLUDE_DIR})
string(REPLACE ";" " " string_libraries "${OPENSSL_LIBRARIES}")
set(VPIC_CXX_LIBRARIES "${VPIC_CXX_LIBRARIES} ${string_libraries}")
endif(ENABLE_OPENSSL)

find_package(Threads REQUIRED)

#------------------------------------------------------------------------------#
# Act on build options set in project.cmake
#------------------------------------------------------------------------------#

#------------------------------------------------------------------------------#
# Add options for building with the legacy particle sort implementation.
#------------------------------------------------------------------------------#
Expand Down Expand Up @@ -288,15 +275,23 @@ endif()
# Miscellaneous options.
#------------------------------------------------------------------------------#

if(ENABLE_OPENSSL)
add_definitions(-DENABLE_OPENSSL)
endif(ENABLE_OPENSSL)

if(VPIC_PRINT_MORE_DIGITS)
add_definitions(-DVPIC_PRINT_MORE_DIGITS)
set(VPIC_CXX_FLAGS "${VPIC_CXX_FLAGS} -DVPIC_PRINT_MORE_DIGITS")
endif(VPIC_PRINT_MORE_DIGITS)

if(USE_HDF5)
# Enable HDF5, and the relevant defines
find_package(HDF5 REQUIRED)
if (NOT HDF5_IS_PARALLEL)
message(FATAL_ERROR "HDF5 Parallel support is required: ${HDF5_IS_PARALLEL}")
endif()
add_definitions(-DVPIC_ENABLE_HDF5)
string(REPLACE ";" " " string_libraries "${HDF5_C_LIBRARIES}")
set(VPIC_CXX_LIBRARIES "${VPIC_CXX_LIBRARIES} ${string_libraries}")
include_directories(${HDF5_INCLUDE_DIRS})
endif(USE_HDF5)

#------------------------------------------------------------------------------#
# Handle vpic compile script last.
#------------------------------------------------------------------------------#
Expand Down Expand Up @@ -342,18 +337,6 @@ install(DIRECTORY src/ DESTINATION include/vpic
FILES_MATCHING PATTERN "*.h")


# local script
configure_file(${CMAKE_SOURCE_DIR}/bin/vpic-local.in
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/vpic)

file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/vpic
DESTINATION ${CMAKE_BINARY_DIR}/bin
FILE_PERMISSIONS
OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE
)

#------------------------------------------------------------------------------#
# Add library target
#------------------------------------------------------------------------------#
Expand All @@ -377,8 +360,21 @@ else()
set(VPIC_SRC)
install(TARGETS vpic LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
endif()

# Configure local script to generate bin/vpic
configure_file(${CMAKE_SOURCE_DIR}/bin/vpic-local.in
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/vpic)

file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/vpic
DESTINATION ${CMAKE_BINARY_DIR}/bin
FILE_PERMISSIONS
OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE
)

target_include_directories(vpic INTERFACE ${CMAKE_SOURCE_DIR}/src)
target_link_libraries(vpic ${VPIC_EXPOSE} ${MPI_CXX_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS})
target_link_libraries(vpic ${VPIC_EXPOSE} ${MPI_CXX_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} ${HDF5_C_LIBRARIES})
target_compile_options(vpic ${VPIC_EXPOSE} ${MPI_C_COMPILE_FLAGS})

macro(build_a_vpic name deck)
Expand Down
4 changes: 2 additions & 2 deletions bin/vpic-local.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

deck=`echo $1 | sed 's,\.cxx,,g;s,\.cc,,g;s,\.cpp,,g;s,.*\/,,g'`

echo "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS} -I. -I${CMAKE_SOURCE_DIR}/src ${VPIC_CXX_FLAGS} -DINPUT_DECK=$1 ${CMAKE_SOURCE_DIR}/deck/main.cc ${CMAKE_SOURCE_DIR}/deck/wrapper.cc -o $deck.${CMAKE_SYSTEM_NAME} -Wl,-rpath,${CMAKE_BINARY_DIR} -L${CMAKE_BINARY_DIR} -lvpic ${VPIC_CXX_LIBRARIES} -lpthread -ldl"
echo "${CMAKE_CXX_COMPILER} ${VPIC_DEFINES} ${CMAKE_CXX_FLAGS} -I. -I${CMAKE_SOURCE_DIR}/src ${VPIC_CXX_FLAGS} -DINPUT_DECK=$1 ${CMAKE_SOURCE_DIR}/deck/main.cc ${CMAKE_SOURCE_DIR}/deck/wrapper.cc -o $deck.${CMAKE_SYSTEM_NAME} -Wl,-rpath,${CMAKE_BINARY_DIR} -L${CMAKE_BINARY_DIR} -lvpic ${VPIC_CXX_LIBRARIES} -lpthread -ldl"

${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS} -I. -I${CMAKE_SOURCE_DIR}/src ${VPIC_CXX_FLAGS} -DINPUT_DECK=$1 ${CMAKE_SOURCE_DIR}/deck/main.cc ${CMAKE_SOURCE_DIR}/deck/wrapper.cc -o $deck.${CMAKE_SYSTEM_NAME} -Wl,-rpath,${CMAKE_BINARY_DIR} -L${CMAKE_BINARY_DIR} -lvpic ${VPIC_CXX_LIBRARIES} -lpthread -ldl
${CMAKE_CXX_COMPILER} ${VPIC_DEFINES}${CMAKE_CXX_FLAGS} -I. -I${CMAKE_SOURCE_DIR}/src ${VPIC_CXX_FLAGS} -DINPUT_DECK=$1 ${CMAKE_SOURCE_DIR}/deck/main.cc ${CMAKE_SOURCE_DIR}/deck/wrapper.cc -o $deck.${CMAKE_SYSTEM_NAME} -Wl,-rpath,${CMAKE_BINARY_DIR} -L${CMAKE_BINARY_DIR} -lvpic ${VPIC_CXX_LIBRARIES} -lpthread -ldl
Loading