| #
9a3a8673
|
| 17-Oct-2025 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'jczhang/2025-09-19/precision-mumps' into 'main'
Support different precisions with MUMPS
See merge request petsc/petsc!8715
|
| #
d1a032db
|
| 26-Aug-2024 |
Pierre Jolivet <pierre@joliv.et> |
Enable ScaLAPACK and MUMPS for other precisions
|
| #
3b91a372
|
| 26-Mar-2024 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'hongzh/sell-hip' into 'main'
Add SELLHIP
See merge request petsc/petsc!7338
|
| #
773bf0f6
|
| 05-Mar-2024 |
Hong Zhang <hongzhang@anl.gov> |
Add SELLHIP
- The HIP kernels are converted directly from their CUDA version - AMD GPUs and NVIDIA GPUs use different warp sizes. We set the warp size to 64 by default for AMD GPUs to faciliate comp
Add SELLHIP
- The HIP kernels are converted directly from their CUDA version - AMD GPUs and NVIDIA GPUs use different warp sizes. We set the warp size to 64 by default for AMD GPUs to faciliate compile-time code optimization
show more ...
|
| #
8f649e38
|
| 28-Jun-2023 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'knepley/feature-mat-lrc-create' into 'main'
Mat: Now MatLRC registers a creation routine and responds like a regular Mat type
See merge request petsc/petsc!6640
|
| #
bcf2175c
|
| 28-Jun-2023 |
Matthew Knepley <knepley@gmail.com> |
Mat: Now MatLRC registers a creation routine and responds like a regular Mat type
Co-Authored-by: Jose E. Roman <jroman@dsic.upv.es>
|
| #
93d6cec8
|
| 30-May-2023 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'tisaac/feature-mat-vectordiagonal' into 'main'
Add MATDIAGONAL and PCMatSetApplyOperation()
See merge request petsc/petsc!6487
|
| #
345a4b08
|
| 19-May-2023 |
Toby Isaac <toby.isaac@gmail.com> |
Add `MATDIAGONAL` and `PCMatSetApplyOperation()`
`MATDIAGONAL` (`MatCreateDiagonal()`) is an interface for manipulating a diagonal matrix as a `Vec`, in particular supporting no-copy modification of
Add `MATDIAGONAL` and `PCMatSetApplyOperation()`
`MATDIAGONAL` (`MatCreateDiagonal()`) is an interface for manipulating a diagonal matrix as a `Vec`, in particular supporting no-copy modification of the diagonal and inverse diagonal via `MatDiagonalGetDiagonal()`, `MatDiagonalRestoreDiagonal()`, `MatDiagonalGetInverseDiagonal()`, and `MatDiagonalRestoreInverseDiagonal`().
`PCMatSetApplyOperation()` and `PCMatGetApplyOperation()` support using all the linear operators currently defined by a `Mat` (`MatMult()`, `MatMultTranspose()`, `MatMultHermitianTranspose()`, `MatSolve()`, `MatSolveTranspose()`) as the operation of `PCApply()` for a `PCMAT`. The advantage over a `PCSHELL` is that the other operations (`PCApplyTranspose()`, `PCMatApply()`) are automatically inferred.
These tools help make it easier to route operations like `VecPointwiseMult()` and `VecPointwiseDivide()` through `KSPSolve()` to avoid handling diagonal matrices as a special case (a pattern that is going to be removed from `MATLMVM`).
show more ...
|
| #
dd874c20
|
| 10-Apr-2023 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'hongzh/sell-cuda' into 'main'
SELL-based SpMV
See merge request petsc/petsc!3428
|
| #
2d1451d4
|
| 09-Jan-2020 |
Hong Zhang <hongzhang@anl.gov> |
Initial commit for porting SELL to GPU
- Add tiled SPMV and basic SpMVfor SeqSELL - Tested in serial - Offloadmask is used to determine when the matrix should be copied to GPU - Use different slice
Initial commit for porting SELL to GPU
- Add tiled SPMV and basic SpMVfor SeqSELL - Tested in serial - Offloadmask is used to determine when the matrix should be copied to GPU - Use different slice height for CUDA version - By checking the nonzerostate, PETSc can decide if the whole matrix need to be copied or just the values need to be copied - Make the convert function public so that the very slow MatConvert_Basic can be avoided sometimes. E.g. one can use a two-step convert method: AIJ->SELL,SELL->SELLCUDA instead of the direct convert AIJ->SELLCUDA - Make the FLOPS count for SELL same as that for AIJCUSPARSE. - MatDisAssemble is not needed. - Change slice height from 32 to 16 for GPU - To overlap communication with MatMult, VecScatterBegin() should be called before MatMult() for the diagonal part. - SLICE_HEIGHT is defined to be 32 to match the warp size of GPU. For other cases, it is still 8.
Funded-by: Project: PETSc for GPU Time: 42 hours Reported-by: Thanks-to:
show more ...
|
| #
2f1953c4
|
| 14-Mar-2023 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'jacobf/2023-01-11/matdensecupm' into 'main'
Feature: MATDENSECUPM
See merge request petsc/petsc!6049
|
| #
4742e46b
|
| 22-Feb-2023 |
Jacob Faibussowitsch <jacob.fai@gmail.com> |
MatDense CUPM
|
| #
31d78bcd
|
| 02-Feb-2023 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'jacobf/2022-12-10/petscerrorcode-nodiscard' into 'main'
Feature: Non-discardable PetscErrorCode
See merge request petsc/petsc!5923
|
| #
3ba16761
|
| 10-Dec-2022 |
Jacob Faibussowitsch <jacob.fai@gmail.com> |
Make PetscErrorCode a non-discardable enum
|
| #
c1f49a03
|
| 01-Oct-2022 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'suyash/hip' into 'main'
Add HIP support to Mat class in PETSc
See merge request petsc/petsc!5383
|
| #
47d993e7
|
| 01-Oct-2022 |
suyashtn <suyashtn@umich.edu> |
Add HIP support to Mat class in PETSc
Co-authored-by: Justin Chang <jychang48@gmail.com>
Fixed-by: Jacob Faibussowitsch <jacob.fai@gmail.com> Fixed-by: Junchao Zhang <jczhang@mcs.anl.gov> Fixed-by:
Add HIP support to Mat class in PETSc
Co-authored-by: Justin Chang <jychang48@gmail.com>
Fixed-by: Jacob Faibussowitsch <jacob.fai@gmail.com> Fixed-by: Junchao Zhang <jczhang@mcs.anl.gov> Fixed-by: Satish Balay <balay@mcs.anl.gov>
show more ...
|
| #
061e922f
|
| 22-Sep-2022 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'jacobf/2022-09-21/2-bike-2-shed' into 'main'
Feature: Bicycle Storage Facility 2
See merge request petsc/petsc!5661
|
| #
d71ae5a4
|
| 21-Sep-2022 |
Jacob Faibussowitsch <jacob.fai@gmail.com> |
source code format changes due to .clang-format changes
|
| #
a3c22455
|
| 05-Sep-2022 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'barry/2022-08-15/fix-mat-manpages' into 'main'
Man pages in mat directory, manual material on matrices
See merge request petsc/petsc!5539
|
| #
11a5261e
|
| 17-Aug-2022 |
Barry Smith <bsmith@mcs.anl.gov> |
Fix manual pages in src/mat directory, very minor source code change
Commit-type: documentation /spend 22h
|
| #
58d68138
|
| 23-Aug-2022 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'barry/2022-08-21/clang-format-source' into 'main'
format repository with clang-format
See merge request petsc/petsc!5541
|
| #
9371c9d4
|
| 22-Aug-2022 |
Satish Balay <balay@mcs.anl.gov> |
clang-format: convert PETSc sources to comply with clang-format
|
| #
89669be4
|
| 02-May-2022 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'psanan/docs-sphinx-man-pages' into 'main'
Integrate Man Pages into Sphinx Docs
Closes #1132 and #1015
See merge request petsc/petsc!4989
|
| #
db781477
|
| 25-Apr-2022 |
Patrick Sanan <patrick.sanan@gmail.com> |
Docs: bulk add backticks to .seealso man page fields
```python import os import re import fileinput
def _process_word(word): comma = "," if word.endswith(",") else "" return "`%s`%s" % (wor
Docs: bulk add backticks to .seealso man page fields
```python import os import re import fileinput
def _process_word(word): comma = "," if word.endswith(",") else "" return "`%s`%s" % (word.rstrip(","), comma)
def _process_stripped_line(line): return " ".join(map(_process_word, line.split()))
start_pattern = re.compile(r"^( *\.seealso:? )(.*$)")
def process_file(filename_full): with fileinput.FileInput(filename_full, inplace=True) as f: in_block = False for line in f: line_stripped = line.strip() # end ".seealso blocks" on a blank line or C-style comment close line_modified = None if not line_stripped: in_block = False elif line_stripped.endswith("*/"): in_block = False else: match = re.match(start_pattern, line) # not stripped line if match: indent = " " * len(match.group(1)) in_block = True line_modified = match.group( 1) + _process_stripped_line( match.group(2).strip()) elif in_block: line_modified = indent + _process_stripped_line( line_stripped) if line_modified: print(line_modified) # prints to the file else: print(line, end="") # prints to the file
BASE_DIRS = ["src", "include"] EXT = [".c", ".cxx", ".cpp", ".cu", ".h", ".hpp", ".hxx"] EXCLUDE_DIRS = ["tests", "tutorials", "ftn-auto", "ftn-custom", "benchmarks"]
def main(): """ Process everything """ for base in BASE_DIRS: for root, dirs, files in os.walk(base): for filename in files: if os.path.splitext(filename)[1] in EXT: filename_full = os.path.join(root, filename) print("FILE ---", filename_full) process_file(filename_full) for exclude_dir in EXCLUDE_DIRS: if exclude_dir in dirs: dirs.remove(exclude_dir)
if __name__ == "__main__": main() ```
show more ...
|
| #
f882803c
|
| 26-Mar-2022 |
Satish Balay <balay@mcs.anl.gov> |
Merge branch 'jacobf/2022-02-23/variadic-chkerr' into 'main'
Variadic CHKERRQ()
See merge request petsc/petsc!4889
|