-
Notifications
You must be signed in to change notification settings - Fork 1
/
ga.spec
413 lines (344 loc) · 13.5 KB
/
ga.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
# Warning:
# Anyone editing this spec file please make sure the same spec file
# works on other fedora and epel releases, which are supported by this software.
# No quick Rawhide-only fixes will be allowed.
%define mpich_name mpich
Name: ga
Version: 5.7
Release: 1%{?dist}
Summary: Global Arrays Toolkit
License: BSD
Source: https://github.com/GlobalArrays/ga/releases/download/v%{version}/ga-%{version}.tar.gz
URL: http://github.com/GlobalArrays/ga
Patch0: ga_diag_seq.patch
Patch1: mpi2_mods.patch
Patch2: nousemmap_i386.patch
Patch3: mkl_pdstedc.patch
Patch4: pgcc_f77object.patch
ExclusiveArch: %{ix86} x86_64
BuildRequires: openmpi-devel, %{mpich_name}-devel, gcc-c++, gcc-gfortran, hwloc-devel
BuildRequires: libibverbs-devel, openblas-devel, openssh-clients, dos2unix
%define ga_desc_base \
The Global Arrays (GA) toolkit provides an efficient and portable \
"shared-memory" programming interface for distributed-memory \
computers. Each process in a MIMD parallel program can asynchronously \
access logical blocks of physically distributed dense multi- \
dimensional arrays, without need for explicit cooperation by other \
processes. Unlike other shared-memory environments, the GA model \
exposes to the programmer the non-uniform memory access (NUMA) \
characteristics of the high performance computers and acknowledges \
that access to a remote portion of the shared data is slower than to \
the local portion. The locality information for the shared data is \
available, and a direct access to the local portions of shared data \
is provided.
%description
%{ga_desc_base}
- Global Arrays Toolkit Base Package.
%package common
Summary: Global Arrays Common Files
BuildArch: noarch
%description common
%{ga_desc_base}
- Global Arrays Common Files.
%package mpich
Summary: Global Arrays Toolkit for MPICH
BuildRequires: scalapack-%{mpich_name}-devel
BuildRequires: lapack-devel
Requires: %{name}-common = %{version}
Provides: %{name}-mpich2 = %{version}-%{release}
Obsoletes: %{name}-mpich2 < %{version}-%{release}
%description mpich
%{ga_desc_base}
- Libraries against MPICH.
%package mpich-devel
Summary: Global Arrays Toolkit for MPICH Development
Requires: scalapack-%{mpich_name}-devel, %{mpich_name}-devel
Requires: lapack-devel
Requires: openblas-devel, %{name}-common = %{version}, %{name}-mpich = %{version}
Provides: %{name}-mpich2-devel = %{version}-%{release}
Obsoletes: %{name}-mpich2-devel < %{version}-%{release}
%description mpich-devel
%{ga_desc_base}
- Development Software against MPICH.
%package mpich-static
Summary: Global Arrays Toolkit for MPICH Static Libraries
Requires: scalapack-%{mpich_name}-devel, %{mpich_name}-devel
Requires: lapack-devel
Requires: openblas-devel, %{name}-common = %{version}, %{name}-mpich = %{version}
Provides: %{name}-mpich2-static = %{version}-%{release}
Obsoletes: %{name}-mpich2-static < %{version}-%{release}
%description mpich-static
%{ga_desc_base}
- Static Libraries against MPICH.
%ldconfig_scriptlets mpich
%package openmpi
Summary: Global Arrays Toolkit for OpenMPI
BuildRequires: scalapack-openmpi-devel
BuildRequires: lapack-devel
Requires: %{name}-common = %{version}
Conflicts: %{name}-openmpi-mpipr
%description openmpi
%{ga_desc_base}
- Libraries against OpenMPI.
%package openmpi-devel
Summary: Global Arrays Toolkit for OpenMPI Development
Requires: scalapack-openmpi-devel, openmpi-devel
Requires: lapack-devel
Requires: openblas-devel, %{name}-common = %{version}, %{name}-openmpi = %{version}
Conflicts: %{name}-openmpi-mpipr-devel
%description openmpi-devel
%{ga_desc_base}
- Development Software against OpenMPI.
%package openmpi-static
Summary: Global Arrays Toolkit for OpenMPI Static Libraries
Requires: scalapack-openmpi-devel, openmpi-devel
Requires: openblas-devel, %{name}-common = %{version}, %{name}-openmpi = %{version}
Conflicts: %{name}-openmpi-mpipr-static
%description openmpi-static
%{ga_desc_base}
- Static Libraries against OpenMPI.
%ldconfig_scriptlets openmpi
%package openmpi-mpipr
Summary: Global Arrays Toolkit for OpenMPI with MPI progress ranks approach MPI-PR
BuildRequires: scalapack-openmpi-devel
BuildRequires: lapack-devel
Requires: %{name}-common = %{version}
Conflicts: %{name}-openmpi
%description openmpi-mpipr
%{ga_desc_base}
- Libraries against OpenMPI.
%package openmpi-mpipr-devel
Summary: Global Arrays Toolkit for OpenMPI Development with MPI progress ranks approach MPI-PR
Requires: scalapack-openmpi-devel, openmpi-devel
Requires: lapack-devel
Requires: openblas-devel, %{name}-common = %{version}, %{name}-openmpi-mpipr = %{version}
Conflicts: %{name}-openmpi-devel
%description openmpi-mpipr-devel
%{ga_desc_base}
- Development Software against OpenMPI.
%package openmpi-mpipr-static
Summary: Global Arrays Toolkit for OpenMPI Static Libraries with MPI progress ranks approach MPI-PR
Requires: scalapack-openmpi-devel, openmpi-devel
Requires: openblas-devel, %{name}-common = %{version}, %{name}-openmpi-mpipr = %{version}
Conflicts: %{name}-openmpi-static
%description openmpi-mpipr-static
%{ga_desc_base}
- Static Libraries against OpenMPI.
%ldconfig_scriptlets openmpi-mpipr
%define ga_version 5.7
%prep
%setup -q -c -n %{name}-%{version}
%patch0 -p0
%patch1 -p0
%patch2 -p0
%patch3 -p0
%patch4 -p0
pushd %{name}-%{ga_version}
popd
for i in mpich openmpi; do
cp -a %{name}-%{ga_version} %{name}-%{version}-$i
done
%define doBuild \
export LIBS="-lscalapack -lopenblas -lm" ; \
cd %{name}-%{version}-$MPI_COMPILER_NAME ; \
%configure \\\
--bindir=$MPI_BIN \\\
--libdir=$MPI_LIB \\\
--includedir=$MPI_INCLUDE \\\
--with-scalapack4=-lscalapack \\\
--with-blas4=-lopenblas \\\
--enable-shared \\\
--enable-static \\\
--enable-peigs \\\
--enable-cxx \\\
--enable-f77 \\\
$GA_CONFIGURE_OPTIONS ; \
%{__make} %{?__smp_mflags} ; \
cd ..
export MPI_COMPILER_NAME=mpich
export GA_CONFIGURE_OPTIONS=""
%{_mpich_load}
%doBuild
%{_mpich_unload}
export MPI_COMPILER_NAME=openmpi
%{_openmpi_load}
%doBuild
%{_openmpi_unload}
export MPI_COMPILER_NAME=openmpi
export GA_CONFIGURE_OPTIONS="--with-mpi-pr"
%{_openmpi_load}
%doBuild
%{_openmpi_unload}
%install
%define doInstall \
cd %{name}-%{version}-$MPI_COMPILER_NAME ; \
DESTDIR=$RPM_BUILD_ROOT make install ; \
cd ..
rm -rf $RPM_BUILD_ROOT
export MPI_COMPILER_NAME=mpich
%{_mpich_load}
%doInstall
%{_mpich_unload}
export MPI_COMPILER_NAME=openmpi
%{_openmpi_load}
%doInstall
%{_openmpi_unload}
find %{buildroot} -type f -name "*.la" -exec rm -f {} \;
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysctl.d
echo 'kernel.shmmax = 134217728' > $RPM_BUILD_ROOT/%{_sysconfdir}/sysctl.d/armci.conf
dos2unix %{name}-%{ga_version}/COPYRIGHT
%check
%if %{?do_test}0
%{_mpich_load}
cd %{name}-%{version}-mpich
make check
cd ..
%{_mpich_unload}
%endif
%files common
%doc %{name}-%{ga_version}/README.md %{name}-%{ga_version}/CHANGELOG.md
%doc %{name}-%{ga_version}/COPYRIGHT
%config(noreplace) %{_sysconfdir}/sysctl.d/armci.conf
%files mpich
%doc %{name}-%{ga_version}/COPYRIGHT
%{_libdir}/%{mpich_name}/lib/lib*.so.*
%{_libdir}/%{mpich_name}/bin/*.x
%files mpich-devel
%doc %{name}-%{ga_version}/COPYRIGHT
%{_libdir}/%{mpich_name}/lib/lib*.so
%{_includedir}/%{mpich_name}-%{_arch}/*
%{_libdir}/%{mpich_name}/bin/ga-config
%{_libdir}/%{mpich_name}/bin/armci-config
%{_libdir}/%{mpich_name}/bin/comex-config
%files mpich-static
%doc %{name}-%{ga_version}/COPYRIGHT
%{_libdir}/%{mpich_name}/lib/lib*.a
%files openmpi
%doc %{name}-%{ga_version}/COPYRIGHT
%{_libdir}/openmpi/lib/lib*.so.*
%{_libdir}/openmpi/bin/*.x
%files openmpi-devel
%doc %{name}-%{ga_version}/COPYRIGHT
%{_libdir}/openmpi/lib/lib*.so
%{_includedir}/openmpi-%{_arch}/*
%{_libdir}/openmpi/bin/ga-config
%{_libdir}/openmpi/bin/armci-config
%{_libdir}/openmpi/bin/comex-config
%files openmpi-static
%doc %{name}-%{ga_version}/COPYRIGHT
%{_libdir}/openmpi/lib/lib*.a
%files openmpi-mpipr
%doc %{name}-%{ga_version}/COPYRIGHT
%{_libdir}/openmpi/lib/lib*.so.*
%{_libdir}/openmpi/bin/*.x
%files openmpi-mpipr-devel
%doc %{name}-%{ga_version}/COPYRIGHT
%{_libdir}/openmpi/lib/lib*.so
%{_includedir}/openmpi-%{_arch}/*
%{_libdir}/openmpi/bin/ga-config
%{_libdir}/openmpi/bin/armci-config
%{_libdir}/openmpi/bin/comex-config
%files openmpi-mpipr-static
%doc %{name}-%{ga_version}/COPYRIGHT
%{_libdir}/openmpi/lib/lib*.a
%changelog
* Wed Oct 02 2019 Edoardo Apra <edoardo.apra@gmail.com> - 5.7-1.1
- added ga-openmpi-pr RPMs built with NETWORK=MPI-PR
* Tue Oct 01 2019 Edoardo Apra <edoardo.apra@gmail.com> - 5.7-1
- Release 5.7
- removed openib target
- fix for MKL error "PDSTEDC parameter number 10 had an illegal value"
- fix for MPI-2 deprecated MPI_Type_struct and MPI_Errhandler_set
- added NOUSE_MMAP config.h option for 32bit linux
- fix for pgcc configure error
* Tue Aug 07 2018 Edoardo Apra <edoardo.apra@gmail.com> - 5.6.5-3
- fortran integer casting in ga_diag. Fixes #1613089
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.6.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Jun 13 2018 Edoardo Apra <edoardo.apra@gmail.com> - 5.6.5-1
- New release 5.6.5
- Replaced Atlas with OpenBLAS
- Made compatible with ScaLapack RPM updates
- Added options -with-blas4 to work with NWChem
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Fri Aug 25 2017 Adam Williamson <awilliam@redhat.com> - 5.6.1-1
- New release 5.6.1
- Minor spec fixups
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.3b-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.3b-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.3b-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Oct 21 2016 Orion Poplawski <orion@cora.nwra.com> - 5.3b-21
- Rebuild for openmpi 2.0
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 5.3b-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Sep 15 2015 Orion Poplawski <orion@cora.nwra.com> - 5.3b-19
- Rebuild for openmpi 1.10.0
* Sun Jul 26 2015 Sandro Mani <manisandro@gmail.com> - 5.3b-18
- Rebuild for RPM MPI Requires Provides Change
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.3b-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 5.3b-16
- Rebuilt for GCC 5 C++11 ABI change
* Fri Mar 20 2015 David Brown <david.brown@pnnl.gov> - 5.3b-15
- Rebuild to support new version of mpich
* Wed Nov 19 2014 David Brown <david.brown@pnnl.gov> - 5.3b-14
- Fix bug #1150473 to support epel7
* Wed Oct 29 2014 David Brown <david.brown@pnnl.gov> - 5.3b-13
- Rebuild to fix bug #1155077
* Sun Oct 5 2014 David Brown <david.brown@pnnl.gov> - 5.3b-12
- Fix up some conditions for f22
- Add more dependancies on lapack-devel in right places
* Tue Sep 30 2014 David Brown <david.brown@pnnl.gov> - 5.3b-11
- Rebuilt for updated upstream package
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.3b-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Mon Jul 07 2014 David Brown <david.brown@pnnl.gov> - 5.3b-8
- add explicit requires for mpich and openmpi packages (#1116627)
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.3b-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon May 12 2014 Tom Callaway <spot@fedoraproject.org> - 5.3b-7
- rebuild against new blacs
* Thu Mar 27 2014 David Brown <david.brown@pnnl.gov> - 5.3b-6
- version bump to get all fedora/epel versions in sync
* Thu Mar 27 2014 David Brown <david.brown@pnnl.gov> - 5.3b-5
- Parameterize mpich name and environment loading to cover EPEL
* Thu Mar 27 2014 David Brown <david.brown@pnnl.gov> - 5.3b-4
- Update to include configure option fixes (1081403)
* Sun Feb 23 2014 David Brown <david.brown@pnnl.gov> - 5.3b-3
- Updated revision for new mpich
* Wed Feb 5 2014 David Brown <david.brown@pnnl.gov> - 5.3b-2
- Fix BuildRoot
- add more generic/specific atlas config
* Mon Jan 27 2014 David Brown <david.brown@pnnl.gov> - 5.3b-1
- Update to upstream version
- Fix exclusive arch to match documentation
- add patch for format security fixes (1037075)
* Mon Sep 23 2013 David Brown <david.brown@pnnl.gov> - 5.1.1-8
- Rebuild for updated atlas.
- Fix atlas libs since they changed things
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.1.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Mon Jul 22 2013 David Brown <david.brown@pnnl.gov> - 5.1.1-6
- forgot obsoletes and provides for sub packages as well.
* Mon Jul 22 2013 David Brown <david.brown@pnnl.gov> - 5.1.1-5
- forgot about obsoletes and provides for new mpich packages.
* Mon Jul 15 2013 David Brown <david.brown@pnnl.gov> - 5.1.1-4
- Rebuild for updated openmpi
- resolved issues with doBuild function to proper define
- also renamed mpich2 to mpich
* Tue May 21 2013 David Brown <david.brown@pnnl.gov> - 5.1.1-3
- modify exclusive arch some more (964424, 964946)
* Tue May 14 2013 David Brown <david.brown@pnnl.gov> - 5.1.1-2
- Add exclusive arch for EPEL.
- And lib*.la files are bad too.
* Wed May 1 2013 David Brown <david.brown@pnnl.gov> - 5.1.1-1
- Update to upstream version
- fixed file locations and clean up rpmlint
* Thu Jul 5 2012 David Brown <david.brown@pnnl.gov> - 5.1-2
- added common package with license and sysctl additions
* Mon Apr 9 2012 David Brown <david.brown@pnnl.gov> - 5.1-1
- initial packaging