source: branches/MPI/adolc.spec @ 240

Last change on this file since 240 was 240, checked in by kulshres, 8 years ago

merge mpi sources from gitclone

The mpi support has been tested only in linux/unix environments.
No support at the moment for Visual Studio or any other systems

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

The following commits are merged:

commit 311273b86bba6700332c32dc384132e840fddebe
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 9 13:59:57 2011 +0200

correct inclusion of headers

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 045e1543da434ac50d1a353bd6c076b60edccd3a
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 9 13:14:42 2011 +0200

remove unbalanced barrier

it is not needed there anyway.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit cfba8b1e574e0758d5877f4eff60a9279a165a28
Author: Benjamin Letschert <letschi@…>
Date: Mon Jun 6 16:35:53 2011 +0200

Correct checking if defined mpi/mpi.h or mpi.h

commit 846b5ff6f470731bc19a5d29a4a4ade8391118e1
Author: Benjamin Letschert <letschi@…>
Date: Mon Jun 6 15:23:16 2011 +0200

Adding mpi-parallel drivers and interfaces for C

Signed-off-by: Benjamin Letschert <letschi@…>

commit 50be816100ac42d9df820fec78e36f8dafe4a6e6
Author: Benjamin Letschert <letschi@…>
Date: Mon Jun 6 12:41:23 2011 +0200

Changed send/recv to bcast/reduce for efficiency.

commit c388ac049f05e2db03afc358dbf698223e3f6643
Author: Benjamin Letschert <letschi@…>
Date: Mon Jun 6 12:39:58 2011 +0200

Refactored forward and reverse interfaces into their own file.

Signed-off-by: Benjamin Letschert <letschi@…>

commit c3894d61704520129b79bfd340adfe00a3ed6394
Author: Benjamin Letschert <letschi@…>
Date: Wed Jun 1 15:52:49 2011 +0200

Adding broadcast and reduce functionality to parallel adol-c

commit 8f1c2534d0868aa8ededa2b954337bda43e09f46
Author: Benjamin Letschert <letschi@…>
Date: Wed Jun 1 14:07:42 2011 +0200

Bugfix for index and nonlinear index domains by sending data

commit 6080e85cd973eb782cf019b58ddadf110aee4232
Author: Benjamin Letschert <letschi@…>
Date: Fri May 27 12:40:54 2011 +0200

correct checking for C++ inside adolc_mpi.h

commit c64771e2fc4a95664a747a9f68f8dcca8c324a57
Author: Benjamin Letschert <letschi@…>
Date: Thu May 26 14:40:22 2011 +0200

Change Index Elements into locints in uni5_for.c

commit fd8f8f4c7f67104cb3ea0c66474fc2c0eeb41997
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Wed Mar 23 13:55:00 2011 +0100

typo in the source of recv in parallel sparse_hess

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 113ca4dc1694e57210b1a8db9c2625c0d2d13239
Author: Maria Brune <brunem@…>
Date: Wed Mar 23 13:06:40 2011 +0100

add MPICPPFLAGS for compilation in sparse subdirectory too

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit f2ebec2a1b0787fd669db4baf0ee6a28a9ca8ff7
Author: Maria Brune <brunem@…>
Date: Wed Mar 23 12:53:04 2011 +0100

correct the conditional compilation for mpi

these are leftovers from

commit 81a8d19bb425c3526d939933f243e525ac99e0c9
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Tue Mar 8 16:37:00 2011 +0100

allow user to give path to mpi headers and libraries

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit ddbebc1b0028b17b50892c181160e9168cfc176e
Author: Maria Brune <brunem@…>
Date: Fri Mar 18 17:27:59 2011 +0100

Handle the pattern only case in all processes

for sparse_jac with options[2] == -1 and for sparse_hess with
repeat == -1, only the pattern is computed and stored. The Jacobian
or the Hessian itself is not propagated. This should be handled in
all processes, otherwise the id != 0 processes will continue to try
to propogate derivatives and hang in a send/recv.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 4af90111e63efbc92e9bc41d8060941e06f5f426
Author: Maria Brune <brunem@…>
Date: Fri Mar 18 17:25:27 2011 +0100

Errors are fatal in parallel case

in case the error happens only in one process, all other processes
will hang. So make the errors fatal so that we abort.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 89d8e7d8d676304e1bccb8742b8cb20e2e27e702
Author: Benjamin Letschert <letschi@…>
Date: Wed Mar 9 14:56:14 2011 +0100

get rid of compiler warning about deprecated conversions

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 81a8d19bb425c3526d939933f243e525ac99e0c9
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Tue Mar 8 16:37:00 2011 +0100

allow user to give path to mpi headers and libraries

there are new flags --with-mpi-includedir=PATH --with-mpi-libdir=PATH
for providing these two paths for compilation in case mpi is not
installed in a default location.

commit f3cd62c952c2d67ae766b30b8aeb23053a606f62
Author: Benjamin Letschert <letschi@…>
Date: Mon Feb 28 12:21:38 2011 +0100

Avoid potential segmentation fault

commit ced5627653ae6faf36d033667a58d6a8f6ff685a
Author: Benjamin Letschert <letschi@…>
Date: Fri Feb 25 12:40:21 2011 +0100

Remove unused variable

commit 57c288ffdf600ffc5316ab09b9d38a90d84505be
Author: Benjamin Letschert <letschi@…>
Date: Fri Feb 25 12:35:08 2011 +0100

Remove code that was already commented out

commit f5e1baaea72caa4b57ec46f1d0375aab594f643f
Author: Benjamin Letschert <letschi@…>
Date: Fri Feb 25 12:32:33 2011 +0100

Add missing index variable declaration

commit e9b954c010231ed8570af52b8e235fe5c84be85b
Author: Benjamin Letschert <letschi@…>
Date: Fri Feb 25 12:31:44 2011 +0100

Make it more explicitly clear that MPI is used.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit f9c0f75d0c7b818f25023a33873ebe99c93e1810
Author: Benjamin Letschert <letschi@…>
Date: Fri Feb 25 12:30:17 2011 +0100

Adding parallel computing for sparse_hess and sparse_jac

hess_pat and jac_pat are also computed in parallel by ind_dom and nonl_dom

commit 2b02eddaf9c2334150334b63fe4b927fdece858c
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Wed Feb 16 15:32:57 2011 +0100

Set flag to check whether mpi was actually initialized

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit d9d36d14f34163e16d91e0f10236e38298f03fd6
Author: Benjamin Letschert <letschi@…>
Date: Fri Feb 11 21:29:22 2011 +0100

Update and fix operations send_data and receive_data in fo_rev.c, ho_rev.c and uni5_for.c

commit 553f47ddcb015209ae667d5415855cda8e68274e
Author: Benjamin Letschert <letschi@…>
Date: Thu Feb 3 14:19:48 2011 +0100

Adding parallel zos_forward, fos_forward, fos_reverse, hos_reverse and fov_reverse

added at adolc_mpi.h and adolc_mpi.cpp

commit 9171fd1e1221e1fdc954deb7b1443867262ea1cf
Author: Benjamin Letschert <letschi@…>
Date: Thu Feb 3 14:10:07 2011 +0100

Adding parallel computing jacobian

new function jacobian in adolc_mpi.h and adolc_mpi.cpp
fixing a bug for jacobian in fov_reverse and hos_reverse

commit 95df1770f7026d11ec5c801299ae93c1657a112d
Author: Benjamin Letschert <letschi@…>
Date: Thu Jan 27 16:51:11 2011 +0100

add missing send in hos_reverse

commit 5afa0be6e103b204042f91703b9ee0e42c648f1c
Author: Benjamin Letschert <letschi@…>
Date: Thu Jan 27 16:50:26 2011 +0100

fov_forward and fov_reverse parallel

commit cf560a6f828ca43c25471da240c12c3b5df889cb
Author: Benny <letschi@letschi-NF61S-M2A.(none)>
Date: Wed Jan 19 20:37:41 2011 +0100

ADOLC_MPI-Barrier-function added to ADOLC-MPI

adding new tape entry "barrier_op"
modified files: adolc_mpi.h adolc_mpi.cpp uni5_for.c fo_rev.c ho_rev.c oplate.h tapedoc.c

commit 9a02525e6baada5332ab3a71119c9ad3ae262d33
Author: Benny <letschi@letschi-NF61S-M2A.(none)>
Date: Wed Jan 19 19:38:54 2011 +0100

Parallel computing hessian

Added source for parallel computing hessian matrix by using MPI-Routines
adding Send and Receive Operations for hos_reverse

commit 7767f1e0ae4337f92e60e5d7d9b6f275c9bb8ef7
Author: Benny <letschi@letschi-NF61S-M2A.(none)>
Date: Wed Jan 19 19:19:23 2011 +0100

Update gradiant parallel computing

Adjoint Tailorbuffer entries are added together

commit a0f3bc4260eda3fca02cc8d65d8cf6675d9efd75
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Tue Nov 30 11:44:00 2010 +0100

do not free user provided pointers

since setTapeInfo{Jac,Hess}Sparse() calls freeSparse{Jac,Hess}Infos()
any pointers stored in the tapeInfos.s[JH]infos structure will be freed.
This means we should do deep copy of the pattern in set_HP provided by the
user. similarly we should return a deep copied pointer in get_HP, as the
user may free it whenever they want.

similar use of deep copying before any setTapeInfosHessSparse() call
should be done in order to avoid saving a free'd pointer again. Only HP
is important at the moment, everything else is NULL or just allocated.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 7c60e5beeb147be3dea3d429c77e12c1a3d0d343
Author: Benjamin Letschert <letschi@…>
Date: Thu Nov 18 12:56:45 2010 +0100

Update configuration for install MPI and deleting TapelessMode? for MPI
change Makefile to install adolc_mpi.h only if mpi ist installed
delete TapelessMode? by data transmission for mpi

commit 5fcf2d78f7d22c9192006ce337139f0d15d11733
Author: Benjamin Letschert <letschi@…>
Date: Thu Nov 18 12:56:45 2010 +0100

Changing MPI-Compiling
Change to Compile ADOL-C-MPI-functions only if MPI is installed on main system

commit 8897f767abae126accaa345cd7fa39fbb4142ab9
Author: Benjamin Letschert <letschi@…>
Date: Tue Nov 16 11:21:18 2010 +0100

First use of MPI

Simple MPI-Functions included for parallel computing;
tested for fos-, zos-forward and fos-reverse method to compute parallel gradient
in speelpennings function

Signed-off-by: Benjamin Letschert <letschi@…>

File size: 4.5 KB
Line 
1# spec file for package adolc (Version 2.2.0)
2
3# norootforbuild
4
5%define packver 2.2.0-trunk-mpi
6
7Name:           adolc
8Version:        2.2.0
9Release:        0.1
10License:        GPLv2 or CPL
11Summary:        Algorithmic Differentiation Library for C/C++
12Url:            http://projects.coin-or.org/ADOL-C
13Group:          Development/Languages/C and C++
14Source:         %{name}-%{packver}.tar.bz2
15Source1:        ColPack.tar.gz
16BuildRequires:  gcc-c++ libstdc++-devel
17BuildRoot:      %{_tmppath}/%{name}-%{version}-build
18AutoReqProv:    on
19
20%description 
21The package ADOL-C (Automatic Differentiation by OverLoading in C++)
22facilitates the evaluation of first and higher derivatives of vector
23functions that are defined by computer programs written in C or
24C++. The resulting derivative evaluation routines may be called from
25C/C++, Fortran, or any other language that can be linked with C.
26
27The numerical values of derivative vectors are obtained free of
28truncation errors at a small multiple of the run time and randomly
29accessed memory of the given function evaluation program.
30
31%package -n libadolc1
32Summary:        Algorithmic Differentiation Library for C/C++
33Group:          Development/Languages/C and C++
34
35%description -n libadolc1
36The package ADOL-C (Automatic Differentiation by OverLoading in C++)
37facilitates the evaluation of first and higher derivatives of vector
38functions that are defined by computer programs written in C or
39C++. The resulting derivative evaluation routines may be called from
40C/C++, Fortran, or any other language that can be linked with C.
41
42The numerical values of derivative vectors are obtained free of
43truncation errors at a small multiple of the run time and randomly
44accessed memory of the given function evaluation program.
45
46%package devel
47Summary:        Algorithmic Differentiation Library for C/C++ -- development files
48Group:          Development/Languages/C and C++
49Requires:       libadolc1 = %{version}
50
51%description devel
52The package ADOL-C (Automatic Differentiation by OverLoading in C++)
53facilitates the evaluation of first and higher derivatives of vector
54functions that are defined by computer programs written in C or
55C++. The resulting derivative evaluation routines may be called from
56C/C++, Fortran, or any other language that can be linked with C.
57
58The numerical values of derivative vectors are obtained free of
59truncation errors at a small multiple of the run time and randomly
60accessed memory of the given function evaluation program.
61
62This package provides the development environment for adolc
63
64%package doc
65Summary:        Algorithmic Differentiation Library for C/C++ -- documentation
66Group:          Development/Languages/C and C++
67BuildArch:      noarch
68
69%description doc
70The package ADOL-C (Automatic Differentiation by OverLoading in C++)
71facilitates the evaluation of first and higher derivatives of vector
72functions that are defined by computer programs written in C or
73C++. The resulting derivative evaluation routines may be called from
74C/C++, Fortran, or any other language that can be linked with C.
75
76The numerical values of derivative vectors are obtained free of
77truncation errors at a small multiple of the run time and randomly
78accessed memory of the given function evaluation program.
79
80This package provides the userÂŽs manual for adolc
81
82%prep
83%setup -q -n %{name}-%{packver} -b 1
84pushd ThirdParty
85mv %{_builddir}/ColPack/* ColPack/
86rm -rf %{_builddir}/ColPack
87popd
88
89%build
90pushd ThirdParty/ColPack
91make %{_smp_mflags}
92popd
93autoreconf -v --install --force
94%configure --prefix=/usr
95make %{_smp_mflags}
96
97%install
98%makeinstall
99install -d %{buildroot}%{_datadir}/doc/packages/%{name}
100install -m 644 README AUTHORS BUGS LICENSE INSTALL TODO %{buildroot}%{_datadir}/doc/packages/%{name}
101install -m 644 ADOL-C/doc/adolc-manual.pdf %{buildroot}%{_datadir}/doc/packages/%{name}
102install -m 644 ADOL-C/doc/short_ref.pdf %{buildroot}%{_datadir}/doc/packages/%{name}
103find %{buildroot} -type f -name '*.la' -delete -print
104
105%clean
106rm -rf %{buildroot}
107rm -rf %{_builddir}/%{name}-%{packver}
108
109%post -n libadolc1 -p /sbin/ldconfig
110%postun -n libadolc1 -p /sbin/ldconfig
111
112%files -n libadolc1
113%defattr(-,root,root)
114%{_libdir}/libadolc.so.*
115
116%files devel
117%defattr(-,root,root)
118%dir %{_includedir}/adolc
119%dir %{_includedir}/adolc/drivers
120%dir %{_includedir}/adolc/sparse
121%dir %{_includedir}/adolc/tapedoc
122%{_includedir}/adolc/*.h
123%{_includedir}/adolc/drivers/*.h
124%{_includedir}/adolc/sparse/*.h
125%{_includedir}/adolc/tapedoc/*.h
126%{_libdir}/libadolc.so
127%{_libdir}/libadolc.a
128
129%files doc
130%defattr(-,root,root)
131%dir %{_datadir}/doc/packages/%{name}
132%{_datadir}/doc/packages/%{name}/*
133
134%changelog
Note: See TracBrowser for help on using the repository browser.