File: ChangeLog

package info (click to toggle)
opari2 2.0.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,808 kB
  • sloc: cpp: 8,533; sh: 5,755; ansic: 5,129; f90: 530; fortran: 341; makefile: 227; awk: 179
file content (360 lines) | stat: -rw-r--r-- 14,650 bytes parent folder | download
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
------------------- Released version 2.0.9 ---------------------------

- Opari2 now generates valid code for Fortran 2008's 'module
  subroutine'.

- opari2-config now supports the option '--cflags=clang', intended to
  be used with clang, clang++, and flang.

- Additional shortcomings and potential workarounds have been
  documented, see file OPEN_ISSUES.

------------------- Released version 2.0.8 ---------------------------

- Fixed compilation error for instrumented OpenMP directives inside
  'associate' constructs with gfortran.

- Prevent make distclean from erroneously removing source files.

------------------- Released version 2.0.7 ---------------------------

- Include omp.h via <file>.opari.inc if it got removed from
  <file>. <file>.opari.inc was empty if the compilation unit was
  lacking any OpenMP directives. Thus, calls to API functions or using
  OpenMP types issued warnings/errors on compilation of the modfied
  sources.

- Handle C++14/17 numeric literals (binary integer, hexadecimal
  floating-point), including seperators.

------------------- Released version 2.0.6 ---------------------------

- make check's test/awk_script_test.sh was reported to fail due to
  wrong ordering of regions provided by
  pomp2_parse_init_regions.awk. Fixed.

- Handle C++11 multi line strings literals with arbitrary delimiter

------------------- Released version 2.0.5 ---------------------------

- The number of regions reported by POMP2_Get_num_regions() was too
  small if OpenMP barrier, flush, or taskwait constructs were present
  in the code. As a consequence opari-lib-dummy crashed; Score-P
  handled this situation gracefully. Fixed.

- When working on preprocessed Fortran files, opari2 duplicated line
  directives. Compiling these files triggered warnings with certain
  compilers. Fixed.

------------------- Released version 2.0.4 ---------------------------

- Fixed some bad string accesses, thanks to Orion Poplawski.

------------------- Released version 2.0.3 ---------------------------

- The instrumentation of OpenMP sections, more precisely the region
  variable passed to POMP2_Section_end, was potentially
  invalid. Invalid values were observed in case the environment
  variable MALLOC_PERTURB_ was set to a non-zero value. Fixed.

------------------- Released version 2.0.2 ---------------------------

- Opari2 usually adds nowait and an explicit barrier after the single
  construct to measure the implicit barrier overhead caused by the
  single construct. If copyprivate is given, neither nowait nor the
  explicit barrier must be instrumented. Opari2 complies for
  C/C++. For Fortran it added nowait and the explicit barrier even if
  copyprivate is present. This results in a compilation error. Fixed.

- When creating the 'pomp2_init_regions.c' file, ignore symbols that
  contain '.ITC.' but keep symbols of type 'D' (see below). These
  symbols are created by Intel compilers and were considered as POMP2
  region when the compilation flags '-ipo' or '-O3' were used. These
  symbols caused linker errors during Score-P's link step.

------------------- Released version 2.0.1 ---------------------------

- Ignore symbols of type 'D' (symbols in the initialized data section)
  when creating the 'pomp2_init_regions.c' file. These symbols caused
  linker errors during Score-P's link step.

- The option --disable=omp is supposed to only instrument parallel
  regions; these are necessary for the thread management of tools
  building upon OPARI2. But the implicit barrier at the end of
  parallel regions was instrumented as well. This is fixed now.

- Empty lines between continuation lines of directives (e.g., due to
  conditional compilation) caused OPARI2 to fail. Fixed.

------------------- Released version 2.0 -----------------------------

- Opari2 was modularized. This means, all functionality directly
  related to OpenMP was encapsulated, thus enabling the support of
  new paradigms by adding the respective classes.

- Parallel loop bodies consisting of if+else were incorrectly
  instrumented with the "end-loop-instrumentation" inserted before the
  (first) else. Fixed.

- Compilation of instrumented code failed if 'default(none)' was
  specified in the outmost parallel region and tasking and/or nesting
  was used. Fixed.

- The use of if- or num_threads-clauses with trailing comma caused the
  compilation of instrumented code to fail. Fixed.

- In Fortran one can expose only selected symbols of a used module,
  e.g., 'use omp_lib, only: <symbol>'. If <symbol> is one of the
  OpenMP lock API calls, OPARI2 would instrument it and compilation
  would fail. Fixed.

------------------- Released version 1.1.4 ---------------------------

- For free form Fortran source files, atomic operations which are
  written over multiple lines are now supported.

- When an asterisk occurs in a schedule clause, this asterisk is
  substituted in the CTC String by an @ to avoid collision with the
  asterisk as CTC String delimiter. opari2_ctc_parser.c transforms
  this back, when the CTC String is read.

- Fix in handling of continuation lines in openmp directives in
  Fortran.

- Fixed detection of function keyword in Fortran.

- Fixed handling of variables named num_threads, so that they are no
  longer detected as a num_threads clause

------------------- Released version 1.1.3 ---------------------------

- Blank lines between continuation lines that can occur during
  preprocessing caused OPARI2 to fail. Fixed.

- Changes to support Fujitsu's K Computer and FX10/FX100 systems.

- Fixed conditional jumps that depend on uninitialized values.

- Fixed handling if inode numbers for very large numbers

- Fixed generation of output file names for *.cuf and *.CUF files

------------------- Released version 1.1.2 ---------------------------

- If num_threads-clauses or if-clauses are the only clause in a
  continuation line, OPARI2 instrumentation resulted in empty
  continuation lines, which causes compilation errors. Fixed this by
  removing empty continuation lines in OpenMP directives.

- Install helper scripts that are not intended to be used directly in
  <prefix>/libexec as opposed to <prefix>/bin.

- Support the --includedir and --bindir configure options.

- Prevent creation of empty '!$omp' lines during
  instrumentation. These cause compilation errors at least for
  gfortran.

- Prevent insertion of a newline after the 'copyin(pomp_tpd)'
  instrumentation.

- OPARI2 erroneously complained about a 'missing continuation line' in
  Fortran codes where '!$OMP PARALLEL' directive spans several lines
  that use conditional compilation.

- On some systems the compiled output of pomp2-parse-init-regions.awk
  caused undefined symbol linker failures due to an ambiguous regular
  expression in the AWK script. Fixed.

------------------- Released version 1.1.1 ---------------------------

- if-else-statements preceded by #pragma omp parallel were
  instrumented erroneously. Fixed.

- OpenMP regions are reported with incorrect source filenames, both in
  the region name (e.g., "!$omp parallel @rhs.prep.f:28" or "!$omp
  parallel @rhs.input.F:28" rather than "!$omp parallel @rhs.f:28")
  and associated attributes. Although not all compilers seem to be
  affected, this issue is seen with GNU, Intel and IBM XL
  compilers. Fixed.

- Blank lines (often the result of preprocessing) which occur within
  Fortran directive continuation are ignored by compilers but treated
  by Opari2 as missing continuation line errors. Fixed.

- Do not instrument an if(true) clause if the user hasn't specified
  one. Although the previously instrumented if(true) clauses usually
  do no harm, they prevent the CRAY compiler from generating parallel
  code. This compiler bug was reported to CRAY.

- Instrumenting "parallel for" with "firstprivate(x) lastprivate(x)"
  caused compilation errors. Fixed.

------------------- Released version 1.1 -----------------------------

- The '--preprocess' flag was added to opari2, which indicates that a file
  has already been preprocessed. This helps to handle OpenMP constructs
  in header files or constructs dependent on preprocessor defines. Using
  this option requires that pomp2_lib.h is already included. Furthermore,
  it requires the marker ___POMP2_INCLUDE___ immediately after the
  included pomp2_lib.h file.

- Fixed enddo detection in Fortran programs when multiple commands are placed
  on one line separated by a semicolon.

- The '--cflags' argument from opari2-config now allows to specify a compiler
  '--cflags[=(gnu|intel|sun|pgi|ibm|cray)]'. Special compiler dependent options
  to avoid warnings caused by the instrumentation are added if a compiler is
  specified.

- Added a ctc_string argument to the POMP2_Begin function. Note: This change
  breaks compatibility to previous opari2 versions.

- If Intel's Language Extensions for Offload are used to offload code to a
  Xeon Phi coprocessor, opari2 no longer instruments OpenMP code in these
  regions or functions marked for execution on the coprocessor. This allows
  handling OpenMP code on the host, when the measurement system does not
  support the offload model.


------------------- Released version 1.0.7 ---------------------------

- Fixed broken option --disable=atomic in Fortran and C/C++.

- Improving options --free-form and --fix-form.

 - Note that within the context of providing the new opari2-config
   option '--region-initialization' introduced in 1.0.7-rc1, the
   script pomp2-parse-init-regions.awk was changed into an executable
   command. The old options '--awk-cmd', '--awk-script', and '--egrep'
   are still available but deprecated.

- Fixed problem parsing escaped characters in C source code which
  caused opari2 to crash.

- Provide POMP2_Init_regions functions with a unique suffix (formerly
  used gettimeofday was not "unique enough") to prevent duplicate
  definition linker failures.

- Improved instrumentation for parallel regions that the default(none)
  clause by replacing the pomp2_ctc_XX constant variable by
  preprocessor defines.

- Fixed bug in instrumenting comments in macros which caused "ERROR:
  unbalanced pragma/directive nesting for $END$ directive".

- Fix instrumentation by adding opari2 options --free-form and
  --fix-form for cases where opari2's assumptions based on the file
  extension (.f fixed-form) do not hold because the user specified
  otherwise (e.g. by compiling with --ffree-form ).

- Resurrect the hidden feature "manually prevent OpenMP directives
  from being instrumented" by documenting it. Parallel regions still get
  instrumented as this a prerequisite of measurement tools to get the
  internal thread handling correct.

- Improved parsing of the nm output in order to generate the region
  initialization file in cases where the the POMP2_Init_reg routines
  were generated with absolute addresses (e.g. using the Open64
  compiler with inter-procedural analysis).

- Do not add any POMP2 statements in Fortran pure
  subroutines/functions as this leads to compile errors.

- Simplify the generation the POMP2 init region file. Previously
  opari2-config had to be called in a sequence (--egrep, --egrep,
  --awk-cmd, --awk-script). This sequence is replaced by opari2-config
  --region-initialization.

- Comments in macros are now ignored when processing.

------------------- Released version 1.0.6 ---------------------------

- Changed opari-config option --pomp2-api-version to
  --interface-version to make it consistent with otf2-config and
  cube-config.

------------------- Released version 1.0.5 ---------------------------

- Fix invalid insertion of <file>.opari.inc in conjunction with
  continued 'dimension' statements.

- Improved Fortran 'end do' detection.

- CTC-strings grew to long for Fortran77. Size reduced.

- Use inode instead of gettimeofday as unique region identifier. In
  very special circumstances gettimeofday resolution leads to
  non-unique identifiers.

- CTC-strings contained wrong line-number information.

- Create temporary files in the directory of the output file.

- Detection of conditional compilation in free form Fortran improved.

------------------- Released version 1.0.4 ---------------------------

- Provide correct region line numbers also for lazy initialization
  during runtime. Previously the region end line was always 0 for lazy
  initialization.

- Improved region end line number handling in conjunction with omitted
  Fortran '!$omp end do' or '!$omp end parallel do' directives.

- Fix invalid insertion of <file>.opari.inc in Fortran77 codes with
  arbitrary continuation line characters in column 6.

- Fix invalid insertion of <file>.opari.inc in Fortran codes in
  conjunction with subroutine calls that distribute their arguments
  over several lines.

------------------- Released version 1.0.3 ---------------------------

- Prevent OPARI2 from instrumenting Fortran 'abstract interfaces'.

- Fix invalid insertion of <file>.opari.inc in conjunction with
  Fortran 'USE' statements that contain line continuations.

- Fix invalid insertion of <file>.opari.inc in conjunction with
  user-defined operators containing '=' in Fortran 'USE' statements.

- Fix instrumentation of .c files that produce a linker/mangling error
  when compiled with a C++ compiler.

- Support for out-of-place a.k.a. VPATH builds. Generate
  <file>.opari.inc in the directory of the output file.

- Fix instrumentation bug (C++ files only) where IBM and PGI compilers
  expect threadprivate variables in different locations.

------------------- Released version 1.0.2 ---------------------------

- Renaming of the configure related variable LD_FLAGS_FOR_BUILD to
  LDFLAGS_FOR_BUILD for consistency.

- Renaming of the installed script pomp2_parse_init_regions.awk to
  pomp2-parse-init-regions.awk for consistency.

- In Fortran, improved parsing of function and subroutine keywords.

- In in-place builds, the [dist]clean targets accidentally removed
  files.

- Create task events only for tasks that actually get created.

- In Fortran, added `integer ( kind=4 )' to all integer variables
  instrumented by opari2.

- In Fortran, continuation lines ending with comments were not
  detected as continuation lines (Ticket 77).

------------------- Released version 1.0.1 ---------------------------

- In Fortran, continued format descriptors resulted in invalid include
  of the opari.inc file (Ticket 76).

- In Fortran, rename lists resulted in premature include of the
  opari.inc file (Ticket 75).

------------------- Released version 1.0 -----------------------------