Skip to content

Commit 4354988

Browse files
authored
Merge pull request #24 from firedrakeproject/connorjward/merge-upstream
Merge upstream
2 parents ebc0e51 + 191d542 commit 4354988

File tree

47 files changed

+466
-184
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+466
-184
lines changed

config/BuildSystem/config/compilerFlags.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,10 @@ def outputCompilerMacros(self):
155155
if out.find('__AVX2__') > -1 and out.find('__FMA__') > -1:
156156
self.text = self.text + 'Intel instruction sets utilizable by compiler:\n'
157157
self.text = self.text + ' AVX2\n'
158-
if out.find('__AVX512__') > -1:
159-
self.text = self.text + ' AVX512\n'
158+
if out.find('__AVX512') > -1:
159+
self.text = self.text + ' AVX512: '
160+
self.text = self.text + ' '.join([i for i in out.split('__') if i.startswith('AVX512')])
161+
self.text = self.text + '\n'
160162
except:
161163
pass
162164
for filename in [self.compilerDefines, self.compilerFixes, self.compilerSource, self.compilerObj]:
@@ -176,15 +178,14 @@ def checkIntelHardwareSupport(self):
176178
try:
177179
(out, err, ret) = Configure.executeShellCommand('lscpu', log = self.log)
178180
except:
179-
try:
180-
(out, err, ret) = Configure.executeShellCommand('sysctl -a', log = self.log)
181-
if out.find('hw.optional.avx2_0: 1') > -1 and out.find('hw.optional.fma: 1') > -1:
182-
self.text = self.text + 'Intel instruction sets found on CPU:\n'
183-
self.text = self.text + ' AVX2\n'
184-
if out.find('hw.optional.avx512f: 1') > -1:
185-
self.text = self.text + ' AVX512\n'
186-
except:
187-
pass
181+
out = ''
182+
if out.find(' avx2 ') > -1 and out.find(' fma ') > -1:
183+
self.text = self.text + 'Intel instruction sets found on CPU:\n'
184+
self.text = self.text + ' AVX2\n'
185+
if out.find(' avx512') > -1:
186+
self.text = self.text + ' AVX512: '
187+
self.text = self.text + ' '.join([i for i in out.split(' ') if i.startswith('avx512')])
188+
self.text = self.text + '\n'
188189
return
189190

190191
def configure(self):

config/BuildSystem/config/compilerOptions.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def getCFlags(self, compiler, bopt, language):
1212
import config.setCompilers
1313

1414
if language == 'C':
15-
if [s for s in ['mpicc','mpiicc'] if os.path.basename(compiler).find(s)>=0]:
15+
if [s for s in ['mpicc','mpiicc','mpiicx'] if os.path.basename(compiler).find(s)>=0]:
1616
try:
1717
output = self.executeShellCommand(compiler + ' -show', log = self.log)[0]
1818
self.framework.addMakeMacro('MPICC_SHOW',output.strip().replace('\n','\\\\n').replace('"','\\"'))
@@ -126,7 +126,7 @@ def getCFlags(self, compiler, bopt, language):
126126
def getCxxFlags(self, compiler, bopt, language):
127127
import config.setCompilers
128128

129-
if [s for s in ['mpiCC','mpic++','mpicxx','mpiicxx','mpiicpc'] if os.path.basename(compiler).find(s)>=0]:
129+
if [s for s in ['mpiCC','mpic++','mpicxx','mpiicxx','mpiicpc','mpiicpx'] if os.path.basename(compiler).find(s)>=0]:
130130
try:
131131
output = self.executeShellCommand(compiler+' -show', log = self.log)[0]
132132
self.framework.addMakeMacro('MPICXX_SHOW',output.strip().replace('\n','\\\\n'))
@@ -240,8 +240,7 @@ def getCxxFlags(self, compiler, bopt, language):
240240
return flags
241241

242242
def getFortranFlags(self, compiler, bopt):
243-
244-
if [s for s in ['mpif77','mpif90','mpifort','mpiifort'] if os.path.basename(compiler).find(s)>=0]:
243+
if [s for s in ['mpif77','mpif90','mpifort','mpiifort','mpiifx'] if os.path.basename(compiler).find(s)>=0]:
245244
try:
246245
output = self.executeShellCommand(compiler+' -show', log = self.log)[0]
247246
self.framework.addMakeMacro('MPIFC_SHOW',output.strip().replace('\n','\\\\n'))

config/BuildSystem/config/packages/hpddm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class Configure(config.package.Package):
44
def __init__(self,framework):
55
config.package.Package.__init__(self,framework)
66
self.version = '2.3.1'
7-
self.gitcommit = 'v'+self.version # main sep-25-2024
7+
self.gitcommit = '1813156fce13718da3ced5aeb2ebbb736a2227bd' # main oct-26-2024
88
self.download = ['git://https://github.com/hpddm/hpddm','https://github.com/hpddm/hpddm/archive/'+self.gitcommit+'.tar.gz']
99
self.minversion = '2.2.1'
1010
self.versionname = 'HPDDM_VERSION'

config/BuildSystem/config/packages/parmmg.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ def __init__(self, framework):
1111
self.liblist = [['libparmmg.a']]
1212
self.functions = ['PMMG_Free_all_var']
1313
self.precisions = ['double']
14+
self.requires32bitint = 1
1415
return
1516

1617
def setupDependencies(self, framework):

config/BuildSystem/config/packages/petsc4py.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,17 @@ def Install(self):
123123
def configureLibrary(self):
124124
import sys
125125
if not self.sharedLibraries.useShared and not self.setCompilers.isCygwin(self.log):
126-
raise RuntimeError('petsc4py requires PETSc be built with shared libraries; rerun with --with-shared-libraries')
126+
raise RuntimeError('petsc4py requires PETSc be built with shared libraries; rerun with --with-shared-libraries')
127+
if sys.version_info < (3, 7):
128+
raise RuntimeError('petsc4py requires Python 3.7 at least')
127129
chkpkgs = ['numpy']
128130
if sys.version_info >= (3, 12):
129131
chkpkgs.append('setuptools')
130132
npkgs = []
131133
for pkg in chkpkgs:
132134
if not getattr(self.python,pkg): npkgs.append(pkg)
133135
if npkgs:
134-
raise RuntimeError('PETSc4py requires Python with "%s" module(s) installed!\n'
136+
raise RuntimeError('petsc4py requires Python with "%s" module(s) installed!\n'
135137
'Please install using package managers - for ex: "apt" or "dnf" (on linux),\n'
136138
'or with "pip" using: %s -m pip install %s' % (" ".join(npkgs), self.python.pyexe, " ".join(npkgs)))
137139
self.getInstallDir()

config/BuildSystem/config/setCompilers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1491,7 +1491,7 @@ def checkCCompiler(self):
14911491
return
14921492

14931493
def generateCPreprocessorGuesses(self):
1494-
'''Determines the C preprocessor from CPP, then --with-cpp, then the C compiler'''
1494+
'''Determines the C preprocessor from --with-cpp, then CPP, then the C compiler'''
14951495
if 'with-cpp' in self.argDB:
14961496
yield self.argDB['with-cpp']
14971497
elif 'CPP' in self.argDB:

config/install.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -508,12 +508,13 @@ def copyLib(self, src, dst):
508508
return
509509
shutil.copy2(src, dst)
510510
if self.setCompilers.getCompiler().find('win32fe') < 0 and os.path.splitext(dst)[1] == '.'+self.arLibSuffix:
511-
self.executeShellCommand(self.ranlib+' '+dst)
512-
if os.path.splitext(dst)[1] == '.dylib' and os.path.isfile('/usr/bin/install_name_tool'):
513-
[output,err,flg] = self.executeShellCommand("otool -D "+src)
511+
import shlex
512+
self.executeShellCommand(shlex.split(self.ranlib) + [dst])
513+
if os.path.splitext(dst)[1] == '.dylib' and shutil.which('otool') and shutil.which('install_name_tool'):
514+
[output,err,flg] = self.executeShellCommand(['otool', '-D', src])
514515
oldname = output[output.find("\n")+1:]
515516
installName = oldname.replace(os.path.realpath(self.archDir), self.installDir)
516-
self.executeShellCommand('/usr/bin/install_name_tool -id ' + installName + ' ' + dst)
517+
self.executeShellCommand(['install_name_tool', '-id', installName, dst])
517518
# preserve the original timestamps - so that the .a vs .so time order is preserved
518519
shutil.copystat(src,dst)
519520
return

doc/community/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
Community
55
*********
66

7+
`Follow PETSc on BlueSky <https://bsky.app/profile/petsc.bsky.social>`__.
8+
79
PETSc is associated with `NumFOCUS <http://numfocus.org>`__, a 501(c)(3) nonprofit supporting open code and reproducible science, through which you can help support PETSc.
810

911
.. image:: /images/community/numfocus.png

doc/community/meetings/2024/index.rst

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,23 @@ Cologne, Germany; May 23-24, 2024
1515
:alt: PETSc User Meeting 2024 group photo
1616

1717
Scientific committee:
18+
1819
- Dr. Pierre Jolivet Sorbonne Université, CNRS
1920

20-
- Prof. Dr. Axel Klawonn University of Cologne
21+
- Prof. Dr. Axel Klawonn University of Cologne
2122

22-
- Prof. Dr. Matthew Knepley University at Buffalo
23+
- Prof. Dr. Matthew Knepley University at Buffalo
2324

2425
- Dr. Martin Lanser University of Cologne
2526

26-
- Prof. Dr. Oliver Rheinbach TU Bergakademie Freiberg
27+
- Prof. Dr. Oliver Rheinbach TU Bergakademie Freiberg
2728

2829
- Dr. Janine Weber University of Cologne
2930

3031
- Dr. Stefano Zampini King Abdullah University of Science and Technology
3132

3233
Local Organizing Committee
34+
3335
- Prof. Dr. Axel Klawonn
3436

3537
- Dr. Jascha Knepper
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
:orphan:
2+
3+
.. _2025_meeting:
4+
5+
6+
2025 PETSc Annual Users Meeting and Tutorial
7+
********************************************
8+
9+
May 20-21, 2025, University of Buffalo, New York, USA
10+
11+
12+
Meeting times
13+
-------------
14+
* Monday, May 19 - Tutorial
15+
* Tuesday, May 20 - Meeting
16+
* Wednesday, May 21 - Meeting
17+
18+
19+
Registration
20+
------------
21+
Please `register <https://ti.to/nf-projects/petsc-annual-meeting>`__ to save your seat.
22+
Fee: $100, for breaks and lunches; free for students.
23+
24+
Submit a presentation
25+
---------------------
26+
`Submit an abstract <https://docs.google.com/forms/d/126KwzajoQvcqU_q7btNsYxFqbe7rJ_vASC-tejZfXDQ>`__ to be included in the schedule.
27+
We welcome talks from all perspectives, including
28+
29+
* contributions to PETSc
30+
* use of PETSc in applications or libraries
31+
* development of libraries and packages `called from PETSc <https://petsc.org/release/install/external_software/>`__
32+
* just curious about using PETSc in applications
33+
34+
Student Travel Support
35+
----------------------
36+
37+
We have funding to provide travel support for students attending the meeting without their own funding. To apply, check the
38+
"Student Funding Support" ticket while registering for the meeting. Early registration will increase your chance of obtaining travel support.
39+
40+
Questions and Meeting Discussion
41+
--------------------------------
42+
43+
For questions about the meeting contact [email protected].
44+
Join the discussion about the meeting on the `2025 PETSc Annual Users Meeting Discord channel <https://discord.com/channels/1119324534303109172/1298348560600924200>`__,

0 commit comments

Comments
 (0)