Rework PetscDeviceContext backends and supporting code:- Add PETSC_DEVICE_HOST- Add PetscDeviceAllocate()- Add PetscDeviceMalloc()- Add PetscDeviceDeallocate()- Add PetscDeviceFree()- Add Petsc
Rework PetscDeviceContext backends and supporting code:- Add PETSC_DEVICE_HOST- Add PetscDeviceAllocate()- Add PetscDeviceMalloc()- Add PetscDeviceDeallocate()- Add PetscDeviceFree()- Add PetscDeviceMemcopy()- Add PetscDeviceArraycopy()- Split petscdevice.h into petscdevice_cuda.h and petscdevice_hip.h- Add petscdevice_cupm.h- Extend cupm::Interface and cupm::BlasInterface classes- Add more C++ utility wrappers
show more ...
Fix up all manual pages in src/sys directoryCommit-type: documentation/spend 10h
Add PetscDeviceAttribute and PetscDeviceGetAttribute() to allow querying properties for aparticular PetscDevice
Remove braces from one-liners
clang-format: convert PETSc sources to comply with clang-format
Convert setfromoptions methods over to PetscTryTypeMethod() approachFlipped the order of the arguments for the function pointers (*setfromoptions)(PetscOptionItem*,obj); and friends to make them co
Convert setfromoptions methods over to PetscTryTypeMethod() approachFlipped the order of the arguments for the function pointers (*setfromoptions)(PetscOptionItem*,obj); and friends to make them consistent with PetscTryTypeMethod() and all the other methodsCommit-type: refactorization/spend 4h
No longer initialize PetscDevice greedily with -log_view (to front load handle costs), instead have separate log events for them
Merge remote-tracking branch 'origin/release'
A few codespell fixes
Add -include */petscdir.mk to makefile that lacked itfor i in `git ls-files | grep makefile | xargs grep -L petscdir.mk`; do echo $i ; str=`echo $i |sed -e 's?[-a-zA-Z0-9]*/?../?g' -e 's?makef
Add -include */petscdir.mk to makefile that lacked itfor i in `git ls-files | grep makefile | xargs grep -L petscdir.mk`; do echo $i ; str=`echo $i |sed -e 's?[-a-zA-Z0-9]*/?../?g' -e 's?makefile?petsckdir.mk?g'` ; cp $i tmp echo "-include $str" > $i cat tmp >> $idoneCommit-type: makefile, housekeeping/spend 15m
remove garbage from makefilesIncluding * unused FLAGS variables * All: lib that did not work * stray blank lines etcCommit-type: housekeeping/spend 1h
Docs: bulk add backticks to .seealso man page fields```pythonimport osimport reimport fileinputdef _process_word(word): comma = "," if word.endswith(",") else "" return "`%s`%s" % (wor
Docs: bulk add backticks to .seealso man page fields```pythonimport osimport reimport fileinputdef _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 fileBASE_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()```
Add support for -log_view with GPUs that does not time the kernels on the GPUAdds -log_view_gpu_timeThis is useful to get high-level times for the solvers without the overhead ofneeding synchron
Add support for -log_view with GPUs that does not time the kernels on the GPUAdds -log_view_gpu_timeThis is useful to get high-level times for the solvers without the overhead ofneeding synchronizations for GPU kernelsThis means the times for any asynchronize operations, like most vector and matrix operationsin the -log_view will be incorrect.Have -log_view display fields related to event time displayed appropriately with NaN when runn on the GPUs without synchronization to ensure correct timesCommit-type: timing/spend 55mReported-by: Jed Brown <jed@jedbrown.org>
Cleanup of introduction of PetscCall()* remove bogus error flags from XXXBegin()/End() macros such as PetscOptionsBegin()/End()* rename for consistency certain XXXBegin()/End() macros such as Mat
Cleanup of introduction of PetscCall()* remove bogus error flags from XXXBegin()/End() macros such as PetscOptionsBegin()/End()* rename for consistency certain XXXBegin()/End() macros such as MatPreallocateInitialize()/Finalize()* fix many lingering ierr = XXX that arose from multiline function calls* sync slepc/hpddm - to use snapshots with the same changesCommit-type: error-checking, style-fix/spend 8h
fixup some remaining stragglers from !4889
The great renaming:- CHKERRQ() -> PetscCall()- CHKERRV() -> PetscCallVoid()- CHKERRMPI() -> PetscCallMPI()- CHKERRABORT() -> PetscCallAbort()- CHKERRCONTINUE() -> PetscCallContinue()- CHKERRXX
The great renaming:- CHKERRQ() -> PetscCall()- CHKERRV() -> PetscCallVoid()- CHKERRMPI() -> PetscCallMPI()- CHKERRABORT() -> PetscCallAbort()- CHKERRCONTINUE() -> PetscCallContinue()- CHKERRXX() -> PetscCallThrow()- CHKERRCXX() -> PetscCallCXX()- CHKERRCUDA() -> PetscCallCUDA()- CHKERRCUBLAS() -> PetscCallCUBLAS()- CHKERRCUSPARSE() -> PetscCallCUSPARSE()- CHKERRCUSOLVER() -> PetscCallCUSOLVER()- CHKERRCUFFT() -> PetscCallCUFFT()- CHKERRCURAND() -> PetscCallCURAND()- CHKERRHIP() -> PetscCallHIP()- CHKERRHIPBLAS() -> PetscCallHIPBLAS()- CHKERRHIPSOLVER() -> PetscCallHIPSOLVER()- CHKERRQ_CEED() -> PetscCallCEED()- CHKERR_FORTRAN_VOID_FUNCTION() -> PetscCallFortranVoidFunction()- CHKERRMKL() -> PetscCallMKL()- CHKERRMMG() -> PetscCallMMG()- CHKERRMMG_NONSTANDARD() -> PetscCallMMG_NONSTANDARD()- CHKERRCGNS() -> PetscCallCGNS()- CHKERRPTSCOTCH() -> PetscCallPTSCOTCH()- CHKERRSTR() -> PetscCallSTR()- CHKERRTC() -> PetscCallTC()
chkerr and friends wrapped
PetscDevice: Add PetscDeviceGetDeviceId
Doc: Trying to remove all reported errors - Since it reports as an error, and only occurs a very few times, I have removed the Imput/Output Parameters sections and replaced them by Output Parameters
Doc: Trying to remove all reported errors - Since it reports as an error, and only occurs a very few times, I have removed the Imput/Output Parameters sections and replaced them by Output Parameters with documentation
C99 fixups
remove the idle cache mechanism from PetscDeviceContext, as it gave false positives when using multiple processes in CI
PetscDevice: Add missing Log initialization for -device_view
rename PetscAssert() -> PetscCheck() and PetscAssertDebug() -> PetscAssert()
make PetscDevice now rely on PETSC_HAVE_CXX rather than PETSC_HAVE_CXX_DIALECT_CXX11
add PetscAssert() and PetscAssertFalse()
123456