Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
284 commits
Select commit Hold shift + click to select a range
23d07ec
Add functions to initialize matrix data from provided forward iterator
Feb 4, 2022
9444dad
Make getters const
Feb 4, 2022
205e96e
Exploit new features in mxm unit test
Feb 4, 2022
c5f8ae0
added get/remove_ref type traits for StructuredMatrix types
Feb 4, 2022
281134b
Temporary switch to pointers to target matrices to enable empty init.
Feb 4, 2022
397403c
First draft of index mapping functions
Feb 4, 2022
eabddfd
Cleaned up StructuredMatrix-related doxygen drafts
Feb 7, 2022
b53077a
Added to the spec draft
Feb 8, 2022
ff59d80
Add alloc primitives for denseref
Feb 8, 2022
70e9317
Handle memory allocation failure. Implement destructor.
Feb 8, 2022
2f8708f
WIP: Add data size calculator depending on Storage scheme and structure.
Feb 8, 2022
f26ad18
Add buildMatrix for general full StructuredMatrix
Feb 10, 2022
a1ac7dd
Add a check for size mismatch in buildMatrix
Feb 10, 2022
0c20fa8
Add mxm for dense Structured Matrices
Feb 14, 2022
f41d269
Introducing grb::get_view<> draft
Feb 17, 2022
8b6a95f
Add UpperTriangular StructuredMatrix (container and view)
Feb 17, 2022
5c503e0
Implement polymorphic comparison of IMFs
Feb 18, 2022
ff15004
Add to structures a compatibility check from source structure and IMF…
Feb 17, 2022
ba56a19
Add constructor taking two IMFs to reference SM with general structure
Feb 18, 2022
50eb258
Implement gather through view with provided TargetStructure and IMFs
Feb 17, 2022
8815b57
Add test for gathers on StructuredMatrix using views with IMFs
Feb 15, 2022
ddae001
Basic VectorView definition based on grb::vector container
Feb 21, 2022
b04c033
Draft of diagonal (vector) view of a matrix
Feb 21, 2022
370d24c
Initial get_view for VectorViews
Feb 21, 2022
9f4391c
Add a stub for Storage Mapping Functions
Feb 21, 2022
f96264e
Define interface for dense StructuredMatrices and scalars
Feb 21, 2022
36dc650
Add test showcasing eWiseApply operations on Structured Matrices
Feb 21, 2022
a6915ab
Minor changes for dense reference vector
Feb 22, 2022
5050789
Add outer product of two vectors for reference_dense backend
Feb 21, 2022
f01d38f
Expand the gather via IMF to general view of general Storage Matrix
Feb 21, 2022
a64a305
Add more Structures for StructuredMatrix
Feb 22, 2022
0183d1f
Add dot product and norm2 in blas1 for dense reference backend
Feb 23, 2022
c246651
WIP Constant matrix factory methods
Feb 24, 2022
6f96781
WIP Base classes for StructuredMatrix
Feb 24, 2022
696cd74
WIP Refactor StructuredMatrix using inheritance from Base classes
Feb 24, 2022
6d491ea
Implement friend functions through base classes
Feb 24, 2022
3a3460f
Add getter and setter for initialized field in StructuredMatrix
Feb 24, 2022
2edadea
Revert "WIP Constant matrix factory methods"
Feb 24, 2022
4c1047a
Add interface for creating constant matrices
Feb 24, 2022
9ac3cd2
Add test showcasing the use of Identity and Zero matrices
Feb 24, 2022
1c3fd38
Revert "WIP: Add data size calculator depending on Storage scheme and…
Feb 24, 2022
b658fe9
draft of selection and range views.
Feb 25, 2022
23614d5
Using default coords template param for VectorView.
Feb 25, 2022
d5cfcf0
Added matrix-related doxygen draft. In need of compilation check (had…
Feb 27, 2022
0e80e5d
Fixed interface compilation (need to double check buildMatrix friend …
Feb 27, 2022
f7749ac
Add doxygen for reference_dense vector
Feb 25, 2022
199f26c
WIP blas1 interface for reference dense
Feb 25, 2022
7c53acf
WIP: Add blas2 interface for reference_dense backend
Feb 25, 2022
5ce7a7d
Fix compilation errors in denseref blas1
Feb 28, 2022
27b3d9d
Complete blas2 interface for denseref backend
Feb 28, 2022
c4701a8
Fix compilation of vector
Feb 28, 2022
99abd12
Add possibility for VectorView to be a temporary
Feb 28, 2022
d8df355
Add VectorView tmp parameter to blas1 and blas2
Feb 28, 2022
6f8ed53
Add doxygen for VectorView
Feb 28, 2022
66e7c4d
Fix specification of tmp template parameters in blas1 and blas2
Feb 28, 2022
7d8f0e6
Fix remaining tmp template errors in blas1
Feb 28, 2022
8a02a1a
Correct tmp template specializaiton in denseref VectorView
Feb 28, 2022
0ed238d
Add missing tmp parameter to view source type
Feb 28, 2022
d74eeca
Expand doxygen for denseref blas1
Feb 28, 2022
3345250
Comment out performance semantics doxygen from blas1
Feb 28, 2022
1199caa
Started working on doxygen description for level3 functions
Feb 28, 2022
98eadb7
Added doxygen draft to blas3 operations
Feb 28, 2022
da00e34
compiler messages cleanup
Feb 28, 2022
b7d3f88
Add capacity to dense vector
Mar 1, 2022
7f61edc
Expand doxygen for dense vector
Mar 1, 2022
df3dacc
Inline functions to avoid "multiple definitions" linking error
Mar 1, 2022
1d297e1
Remove tmp template parameter from VectorView interface.
Mar 3, 2022
426ce0f
Rename Identity view to Original
Mar 3, 2022
55e613b
Rename StructuredMatrix base classes
Mar 3, 2022
8c03e82
Remove tmp template parameter from StructuredMatrix interface
Mar 3, 2022
7fd02cd
Remove 'initialized' field from StructureMatrix classes
Mar 3, 2022
fc78416
Store reference instead of a pointer to a source matrix
Mar 3, 2022
17fe106
Adjust comments to reflect renaming Identity to Original view
Mar 7, 2022
5d18840
Remove 'initialized' field from VectorView
Mar 7, 2022
da7bd8a
!19 Resolve internal issue #360: Make VectorView "compatible" with St…
Mar 14, 2022
66c6f1e
!18 Resolve internal issue #357: Include capacity argument to VectorV…
Mar 18, 2022
315766b
!20 Resolve internal issue #361: Introduce Scalar container
Mar 18, 2022
f33ee00
!25 Resolve internal issue #366: Scalar version of operations at level 1
Mar 22, 2022
9ac08fb
!30 Resolve internal issue #377: Do not expose coordinates template a…
Mar 22, 2022
4e0baff
!24 Resolves internal issue #371: Introducing Union of Bands Structure
Mar 24, 2022
a0ef5c3
!26 Resolve internal issue #364: Resize operations for reference dens…
Mar 24, 2022
e8f12e2
!29 Resolve internal issue #362: Implement bracket operator for acces…
Mar 24, 2022
9b11cca
!31 Resolves internal issue #376: All views applied via get_view
Mar 25, 2022
00202da
!23 Resolve internal issue #370: Introduce sort operation on vectors
Mar 28, 2022
0b0d7fb
!32 Resolve internal issue #378: Convert grb storage from namespace t…
Mar 29, 2022
f206078
!35 Resolve internal issue #367: Separate alp and grb
Mar 25, 2022
cde0f99
!35 Resolve internal issue #367: Refactor grb to alp
Mar 25, 2022
66b497e
Add doxygen configuration file for public ALP API
Apr 4, 2022
310ec95
Add ALP doxygen main page. Also some minor code style fixes.
Apr 4, 2022
d4bb624
!33 Resolve internal issue #379: Implement use cases with current ALP…
Apr 8, 2022
11d6ca4
!44 Resolve internal issue #395: Lazy execution of functions resultin…
Apr 11, 2022
f2628a0
!9 Resolve internal issue #410: Rework dense matrix container
May 19, 2022
be1559c
Add a getter for a reference to an element in matrix (#16)
May 25, 2022
e79d355
Resolve internal issue 434: AMF to provide physical container size (#17)
May 30, 2022
e3e2d1f
Resolve internal issue 445: update dense reference vector implementat…
Jun 1, 2022
2c4927b
412 dense alp mxm (#21)
Jun 2, 2022
f42a639
Resolve internal issue 448: internal set getinitialized to be invoked…
Jun 3, 2022
e649b22
455 revise matrix access call stack for dense alp (#23)
Jun 9, 2022
1308d02
Rename internal intermediate classes to avoid confusion with existing…
Jun 14, 2022
896f6d7
453 dense alp mxm symmetry (#26)
Jun 14, 2022
a784b6e
458 container level traits (#24)
Jun 16, 2022
ed13db6
454 generalize matrix over container functor (#27)
Jun 30, 2022
8bdb8fe
450 initialized status of matrixfunctor (#29)
Jul 22, 2022
83d2232
470 implement the change of amf on transposition (#30)
Jul 25, 2022
5a323c0
478 amffactory and matrix views (#31)
Aug 9, 2022
c01d996
478 vector rework and vector views (#43)
Aug 15, 2022
543d36b
Update Functor-based matrices according to the recent AMF changes (#51)
Aug 16, 2022
373d6a6
493 simplify the design of alp containers (#53)
Aug 16, 2022
4d037ad
497 fix propagation of imf types of views over a matrix vector (#54)
Aug 17, 2022
f81c733
499 Clean up get_view interface (#56)
Aug 19, 2022
50ae00c
504 vector views on a matrix should result in a canonical vector repr…
Aug 29, 2022
69d6513
512 implement matrix view over a vector (#60)
Aug 31, 2022
18d05e3
type_trait draft for checking that a band_interval type contains or n…
Aug 26, 2022
ef50d40
Fixed typo
Aug 27, 2022
385f1ba
print bands
Aug 30, 2022
515f79f
foldl( vector, scalar, op )
Aug 31, 2022
628f896
temp fixes
Aug 31, 2022
a0fe3a5
foldl(vec,scalar) and foldl(scalar,vec) with unit tests
Sep 1, 2022
a6d4ba9
revert non-fold related changes to 303
Sep 2, 2022
f8bdc10
missing unit test file
Sep 2, 2022
d9c8f51
review 01
Sep 2, 2022
cb57b3f
review 2
Sep 2, 2022
49fe548
494 implement set for alp containers scalar to matrix (#58)
Sep 5, 2022
044d85b
516 implement eWiseLambda (#63)
Sep 5, 2022
8ad27fb
505 dense dot norm2 (#66)
Sep 6, 2022
f3d905a
480 storage scheme selection and instantiation (#67)
Sep 7, 2022
695c18c
Hotfix: bound calculations and output init status in set, return valu…
Sep 7, 2022
28c8b26
Hotfix: Add ALP matrix specialization for LowerTriangular structure
Sep 7, 2022
09a2ed0
Hotfix: Fix the structure of column/row get_view return type
Sep 7, 2022
e287055
521 clean up utility functions for printing alp containers (#68)
Sep 8, 2022
a761779
523 dense file iterator (#70)
Sep 14, 2022
e95eea4
Resolve internal issue #513: iterating within bands in operations (#69)
Sep 14, 2022
f1a1436
Resolve internal issue #519: Implement eWiseApply (#71)
Sep 15, 2022
695b0be
520 dense cholesky integration (#72)
Sep 16, 2022
c07f4aa
Resolve internal issue #408: Remove deprecated functions (#73)
Sep 16, 2022
7bb8af2
528 dense foldr explicit implementation (#77)
Sep 20, 2022
5ac9307
Resolve internal issue #526: Implement eWiseMul for matrices with mat…
Sep 20, 2022
5c60ce2
Resolve internal issue #494: Implement set for scalars (#80)
Sep 22, 2022
fb5dfda
Resolve internal issue #531: Implement foldl and foldr on matrices (#78)
Sep 22, 2022
080b029
Fixes wrong symmetry constraints in mxm_band_generic (#81)
Sep 22, 2022
489563a
Resolve internal issue #530: Integrate gemm-like example (#82)
Sep 27, 2022
ac2c187
Resolve internal issue #541: Add ALP matrix specialization with an or…
Sep 28, 2022
e95bf0f
Resolve internal issue #494: Implement matrix set via fold (#83)
Sep 28, 2022
4df111b
Resolve internal issue #542: Add ALP matrix specialization with symme…
Sep 28, 2022
76f815f
Fix after rebase onto develop: Remove duplicated cmake code
Sep 28, 2022
ebbd61a
Fix after rebase onto develop: Scalar is not part of graphblas
Sep 28, 2022
448d224
Fix after rebase onto develop: Remove duplicate functions
Sep 28, 2022
8eba19d
Fix after rebase onto develop: Remove unneded function
Sep 28, 2022
19c7681
Resolve internal issue #547: Add hermitian structure and the correspo…
Sep 29, 2022
2627c7b
Resolve internal issue #548: Add hermitian tridiagonal structure and …
Sep 29, 2022
d4f41fc
Fix the use of set on scalars (#90)
Sep 30, 2022
57e1372
Resolve internal issue #549: Add conjugate operation for ALP matrix (…
Sep 30, 2022
18deb88
Resolve internal issue #553: Allow for a tolerance in error checking …
Sep 30, 2022
dab75eb
551 fix some script (#92)
djelovina Oct 3, 2022
be17c04
532 integrate householder with dense alp containers (#93)
djelovina Oct 3, 2022
45b79e6
Resolve internal issue #561: Generalize ALP matrix over structure (#94)
Oct 14, 2022
2d27ab4
Resolve internal issue #563: Finish the implementation of select view…
Oct 17, 2022
d50b8b9
Resolve internal issue #572: Improve the design of factory for compos…
Oct 21, 2022
cc3a34d
569 householder qr decomposition (#98)
djelovina Oct 21, 2022
fdfe36d
559 dense symmetric tridiagonal eigensolver (#108)
djelovina Oct 24, 2022
c732f69
571 Generalize ALP Matrix and Vector over backend (#109)
Oct 24, 2022
6c8a3ef
missing review (#112)
djelovina Oct 24, 2022
b805c86
Resolve internal issue #575: Fix the placement of operations and incl…
Oct 25, 2022
321cf63
578 alp conjugate for vectors (#114)
djelovina Oct 25, 2022
b7161f7
574 trsv trsm via gauss jordan elimination (#116)
djelovina Oct 26, 2022
82c598d
571 Generalize internal containers over backend (#117)
Oct 27, 2022
e5a4942
571 Reorganize storage related classes (#119)
Oct 28, 2022
0d2a9c3
579 dense forward substitution (#118)
djelovina Oct 28, 2022
36b86f2
575 Move scalar version of set to IO (#120)
Oct 28, 2022
fe4fa24
417 alp dense blocked cholesky integraton (#121)
djelovina Oct 31, 2022
06e78d3
582 remove getlength for alp vectors (#122)
Nov 4, 2022
4fdcbe7
581 fix cmake infrastructure after rebasing on develop (#123)
Nov 4, 2022
2f8240b
symmetric eigensolver (#125)
djelovina Nov 7, 2022
a467f1c
586 dense cholesky for hermitian positive definite matrices (#126)
djelovina Nov 7, 2022
a065947
560 alp reference sort primitive (#113)
hidanielesgit Nov 15, 2022
981bf59
585 dense symmetric hermitian positive definite matrix inversion (#127)
djelovina Nov 18, 2022
44c9b00
590 dense lu factorisation (#128)
djelovina Nov 23, 2022
bec3c8a
Refactoring includes
hidanielesgit Dec 2, 2022
df3c2e7
596 add initial container and ops implementations for parallel dense …
Nov 24, 2022
272e7fa
601 complete support for replication across threads (#133)
Nov 25, 2022
b49a2ef
Refactoring includes (#137)
hidanielesgit Dec 5, 2022
efb5daf
592 dense svd factorisation (#132)
djelovina Dec 6, 2022
6c40366
Merge branch '303-develop-reference_dense-backend' into 558-develop-s…
hidanielesgit Dec 6, 2022
e2e6ebf
Started drafting mxm using 2.5D algo
hidanielesgit Dec 2, 2022
eab18f6
WIP implementation of shifting + compute
hidanielesgit Dec 2, 2022
1de2a8a
First complete draft
hidanielesgit Dec 2, 2022
76a14dc
compiling mxm test on general matrices
hidanielesgit Dec 2, 2022
b16214b
shared mem (ge) mxm passing functional tests
hidanielesgit Dec 2, 2022
5c5c5af
Tmp debugging info + fix in shift computation
hidanielesgit Dec 2, 2022
6d39023
Refactoring includes
hidanielesgit Dec 2, 2022
fc70428
- Fixing mismatching new/delete bug
hidanielesgit Dec 5, 2022
9fc8381
Set up the new backend in the cmake infrastructure
Oct 19, 2022
f7ae9af
Add specializations of necessary ALP features
Oct 26, 2022
aa9a739
Add functions to extract ALP container properties necessary for offlo…
Oct 28, 2022
1221399
Add a unit test for dispatch-specific matrix access logic
Oct 28, 2022
965e285
Enable linking against blas for dispatch backend
Oct 31, 2022
b78f4d9
Offload ALP mxm to blas_gemm
Oct 31, 2022
1314c72
Add TRSM specialization for dispatch backend that offloads to blas
Nov 1, 2022
38b5bdc
Add algorithm for a symmetric rank k update
Nov 1, 2022
f7e02a7
Fix the size check in forward substitution
Nov 2, 2022
a42ee5c
Enable compilation of cholesky for dispatch backend
Oct 21, 2022
88f62d6
Adapt cholesky smoke test for dispatch backend
Nov 2, 2022
ce2bc09
Add prints that signal entering cholesky algorithms
Nov 1, 2022
5cd4537
Call fused mxm and foldl from blocked in-place cholesky
Nov 1, 2022
65bd930
Fix issues after rebase
Nov 28, 2022
10e9289
Fix post-rebase issues in cholesky
Nov 28, 2022
8e1e2c1
Add conjugate on matrices for dispatch backend
Nov 28, 2022
c7e9784
fix
Nov 1, 2022
c8b70ea
performace tests verson
Nov 3, 2022
319c147
FindKblas
Nov 3, 2022
574779a
system-installed-blas linking
Nov 3, 2022
9e01586
cmake blas fix
Nov 28, 2022
d68712d
add cholesky test
Nov 28, 2022
e9f2c1d
Add missing includes in omp files
Nov 29, 2022
6e00aa5
Fix the matrix data type in the unit test
Nov 29, 2022
bb0744c
Include directly backend-specific files
Nov 29, 2022
cb43f7f
compiling with dispatch to cblas_gemm
hidanielesgit Nov 29, 2022
c2079e0
functional test passed with omp+dispatch to cblas_gemm
hidanielesgit Nov 29, 2022
dca5f41
mxm performance tests
Nov 29, 2022
9690864
cmake fix
Nov 29, 2022
395ff77
version to test with kblas
Nov 30, 2022
8c16d32
version with README.perf.txt
Dec 2, 2022
c3ef1c4
Macro fix
hidanielesgit Dec 6, 2022
b784e5b
- Added revised draft of README script
hidanielesgit Dec 7, 2022
08c197c
add lapack cholesky
Dec 7, 2022
ffe11ed
- Added link to instructions in README
hidanielesgit Dec 7, 2022
4949e21
Fixed includes
hidanielesgit Dec 7, 2022
809fa48
fixed scrpts and md files
hidanielesgit Dec 7, 2022
75f3692
Fixes in text
hidanielesgit Dec 8, 2022
11abdd8
607 timing basic reference targets (#139)
djelovina Dec 8, 2022
36b9549
Fixes in text
hidanielesgit Dec 8, 2022
495b9b6
Change BLAS_LIB into BLAS_ROOT
hidanielesgit Dec 8, 2022
faf6ebf
Fixes in text and running only ALP/Dense tests
hidanielesgit Dec 8, 2022
e8d100c
Adding repeat flag to alp smoketests
hidanielesgit Dec 8, 2022
e835ba8
Fixed timing text
hidanielesgit Dec 8, 2022
eadafb9
Fix flags in alpdense md and script
hidanielesgit Dec 8, 2022
ba72dcc
Additional printouts
hidanielesgit Dec 9, 2022
5dee101
Additional printouts
hidanielesgit Dec 9, 2022
16ae2f3
Dropping unused test file
hidanielesgit Dec 9, 2022
b0bc1e5
check dispatch results
Dec 16, 2022
11ef50a
use "U" in lapack-cholesky
Jan 18, 2023
41d2f26
qr_eigensolver
Jan 18, 2023
4778e5b
603 dense mxm performance tests add lapack (#155)
hidanielesgit Jan 19, 2023
08514ea
cmake fix
Jan 9, 2023
6d949d1
Merge Dense reference backend into develop
Jun 18, 2025
303813b
temp disable dense backend
Jun 19, 2025
aa22d40
enable alp_reference
Jun 19, 2025
30be0e1
Enable ALP reference dense backend and update include paths for timer…
Jun 19, 2025
2ff75a1
Refactor type traits in matrix and storage-based matrix headers for c…
Jun 19, 2025
925b1ce
disable dbg smoke on github
Jun 24, 2025
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
2 changes: 1 addition & 1 deletion .github/workflows/dbg_smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
run: sudo apt-get install -y libnuma-dev

- name: Configure
run: mkdir build && cd build && ../bootstrap.sh --prefix=../install --debug-build
run: mkdir build && cd build && ../bootstrap.sh --prefix=../install --debug-build --no-dense

- name: Build
working-directory: ${{github.workspace}}/build
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ paths.mk
[Bb]uild*/
[Oo]bj*/
[Ii]nstall*/
cmake-build-*/
cmake-build-*/
.vscode/
14 changes: 7 additions & 7 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ workflow:
# before_script:
# - yum -y update && yum -y groupinstall "Development Tools" && yum -y install make autoconf cmake numactl-devel
# script:
# - rm -rf build install && mkdir -p install build && cd ./build && ../bootstrap.sh --prefix=../install && make -j$(nproc) && make -j$(nproc) build_tests_all
# - rm -rf build install && mkdir -p install build && cd ./build && ../bootstrap.sh --prefix=../install --no-dense && make -j$(nproc) && make -j$(nproc) build_tests_all
# - *strip_symbols
# artifacts:
# paths:
Expand All @@ -131,7 +131,7 @@ workflow:
# before_script:
# - yum -y update && yum -y groupinstall "Development Tools" && yum -y install make autoconf cmake numactl-devel
# script:
# - mkdir -p install build && cd ./build && ../bootstrap.sh --prefix=../install --debug-build && make -j$(nproc) && make -j$(nproc) build_tests_all
# - mkdir -p install build && cd ./build && ../bootstrap.sh --prefix=../install --debug-build --no-dense && make -j$(nproc) && make -j$(nproc) build_tests_all
# rules:
# - if: $EXTRA_TESTS_ENABLED == "yes"

Expand Down Expand Up @@ -187,7 +187,7 @@ workflow:

build_test:
script:
- mkdir -p install build && cd ./build && ../bootstrap.sh --prefix=../install --with-datasets=${ALP_DATASETS}
- mkdir -p install build && cd ./build && ../bootstrap.sh --prefix=../install --with-datasets=${ALP_DATASETS} --no-dense
&& make -j$(nproc) build_tests_all
- *strip_symbols
artifacts:
Expand Down Expand Up @@ -238,7 +238,7 @@ test_installation:

build_test_buildtype_debug:
script:
- mkdir -p install build && cd ./build && ../bootstrap.sh --prefix=../install --with-datasets=${ALP_DATASETS}
- mkdir -p install build && cd ./build && ../bootstrap.sh --prefix=../install --with-datasets=${ALP_DATASETS} --no-dense
--debug-build && make -j$(nproc) && make -j$(nproc) build_tests_all
- *strip_symbols
artifacts:
Expand Down Expand Up @@ -272,7 +272,7 @@ gitleaks:
# factored out command to download the datasets, cmake, and build in non-debug mode
.setup_and_build_ndebug_slurm: &setup_and_build_ndebug_slurm
- mkdir -p install build && cd ./build
- ../bootstrap.sh --prefix=../install --with-datasets=${SLURM_DATASETS_DIR_PATH} --no-hyperdags
- ../bootstrap.sh --prefix=../install --with-datasets=${SLURM_DATASETS_DIR_PATH} --no-hyperdags --no-dense
- make -j$(nproc)

tests_performance_slurm:
Expand Down Expand Up @@ -318,7 +318,7 @@ build_test_lpf:
- if: $LPF_TESTS_ENABLED == "yes"
script:
# build only LPF-related tests
- mkdir -p install build && cd ./build && ../bootstrap.sh --with-lpf=${LPF_PATH} --no-nonblocking --no-reference
- mkdir -p install build && cd ./build && ../bootstrap.sh --with-lpf=${LPF_PATH} --no-nonblocking --no-reference --no-dense
--no-hyperdags --prefix=../install --with-datasets=${ALP_DATASETS} && make -j$(nproc) build_tests_all
- *strip_symbols
artifacts:
Expand Down Expand Up @@ -389,7 +389,7 @@ build_test_gcc_versions:
# VER: [11,12,13,14]
script:
- mkdir -p install build && cd ./build &&
CXX=${CXX_COMPILER}-${VER} CC=${CC_COMPILER}-${VER} ../bootstrap.sh
CXX=${CXX_COMPILER}-${VER} CC=${CC_COMPILER}-${VER} ../bootstrap.sh --no-dense
--prefix=../install --with-datasets=${ALP_DATASETS}
--with-lpf=${LPF_BASE_PATH}/build_mpich_${CC_COMPILER}_${VER}/install &&
make -j$(nproc) build_tests_all
Expand Down
40 changes: 37 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ project( GraphBLAS
DESCRIPTION "The ultimate engine for sparse computation"
LANGUAGES CXX C
)
set( CMAKE_CXX_STANDARD 11 )
set( CMAKE_CXX_STANDARD 14 )
set( CMAKE_CXX_STANDARD_REQUIRED ON )

# install within the build directory by default (NOT to /usr/local or the likes)
Expand All @@ -50,6 +50,8 @@ endif()
### CONFIGURATION OPTIONS
# to choose backends and dependencies
option( WITH_REFERENCE_BACKEND "With Reference backend" ON )
option( WITH_ALP_REFERENCE_BACKEND "With Reference Dense backend" ON )
option( WITH_ALP_DISPATCH_BACKEND "With Dispatch Dense backend" OFF )
option( WITH_OMP_BACKEND "With OMP backend" ON )
option( WITH_HYPERDAGS_BACKEND "With Hyperdags backend" ON )
if( WITH_HYPERDAGS_BACKEND )
Expand All @@ -58,6 +60,7 @@ if( WITH_HYPERDAGS_BACKEND )
endif()
endif()
option( WITH_NONBLOCKING_BACKEND "With Nonblocking backend" ON )
option( WITH_ALP_OMP_BACKEND "With OMP Dense backend" OFF )
option( WITH_NUMA "With NUMA support" ON )
option( LPF_INSTALL_PATH "Path to the LPF tools for the BSP1D and Hybrid backends" OFF )
# the following options depend on LPF_INSTALL_PATH being set
Expand Down Expand Up @@ -132,7 +135,11 @@ if( NOT WITH_REFERENCE_BACKEND AND
NOT WITH_NONBLOCKING_BACKEND AND
NOT WITH_BSP1D_BACKEND AND
NOT WITH_HYBRID_BACKEND AND
NOT WITH_HYPERDAGS_BACKEND )
NOT WITH_HYPERDAGS_BACKEND AND
NOT WITH_ALP_REFERENCE_BACKEND AND
NOT WITH_ALP_DISPATCH_BACKEND AND
NOT WITH_ALP_OMP_BACKEND )
# at least one backend should be enabled
message( FATAL_ERROR "At least one backend should be enabled")
endif()

Expand All @@ -156,6 +163,15 @@ endif()
if( WITH_HYBRID_BACKEND )
list( APPEND AVAILABLE_TEST_BACKENDS "hybrid" )
endif()
if( WITH_ALP_REFERENCE_BACKEND )
list( APPEND AVAILABLE_TEST_BACKENDS "alp_reference" )
endif()
if( WITH_ALP_DISPATCH_BACKEND )
list( APPEND AVAILABLE_TEST_BACKENDS "alp_dispatch" )
endif()
if( WITH_ALP_OMP_BACKEND )
list( APPEND AVAILABLE_TEST_BACKENDS "alp_omp" )
endif()

# Enable backends based on features
if( ENABLE_SOLVER_LIB )
Expand Down Expand Up @@ -267,7 +283,6 @@ if( WITH_BSP1D_BACKEND OR WITH_HYBRID_BACKEND )
find_package( LPF REQUIRED )
endif( )


### SETTINGS FOR COMPILATION

set( TEST_CATEGORIES "unit" "smoke" "performance" )
Expand All @@ -280,6 +295,10 @@ set( TEST_CATEGORIES "unit" "smoke" "performance" )
# scope and propagate down to the other files
include( AddGRBVars )

if( WITH_ALP_DISPATCH_BACKEND )
include( Blas )
endif( )

# here, add information for wrappers generated during installation
include( AddGRBInstall )

Expand All @@ -303,8 +322,11 @@ include( Transition )

# by default no headers are built
set( WITH_REFERENCE_BACKEND_HEADERS OFF )
set( WITH_ALP_REFERENCE_BACKEND_HEADERS OFF )
set( WITH_ALP_DISPATCH_BACKEND_HEADERS OFF )
set( WITH_OMP_BACKEND_HEADERS OFF )
set( WITH_HYPERDAGS_BACKEND_HEADERS OFF )
set( WITH_ALP_OMP_BACKEND_HEADERS OFF )

# activate headers based on requested backends
if( WITH_REFERENCE_BACKEND OR WITH_BSP1D_BACKEND OR WITH_NONBLOCKING_BACKEND )
Expand All @@ -321,6 +343,18 @@ if( WITH_OMP_BACKEND OR WITH_HYBRID_BACKEND )
set( WITH_OMP_BACKEND_HEADERS ON )
endif()

if( WITH_ALP_REFERENCE_BACKEND )
set( WITH_ALP_REFERENCE_BACKEND_HEADERS ON )
endif()

if( WITH_ALP_DISPATCH_BACKEND )
set( WITH_ALP_DISPATCH_BACKEND_HEADERS ON )
endif()

if( WITH_ALP_OMP_BACKEND )
set( WITH_ALP_OMP_BACKEND_HEADERS ON )
endif()

add_subdirectory( include )

### BACKEND IMPLEMENTATIONS
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ See the License for the specific language governing permissions and
limitations under the License.
</pre>

# ALP/Dense Testing Guide

Please visit [The ALP/Dense Tests](alpdense.md) for the lastest information about testing the prototype ALP/Dense interface and backends.

This distribution contains the C++ Algebraic Programming (ALP) framework, and
provides the ALP/GraphBLAS, ALP/Pregel, and Sparse BLAS programming interfaces.
Expand Down
Loading