| Rev |
Log message |
Author |
Age |
Path |
| 3885 |
[CAF] fix to allow use of uhcaf in makefiles
The uhcaf script will run the make command to determine the communication libs
from GASNet and ARMCI makefiles. If uhcaf is invoked from within another
makefile, the output of the nested makefile will include a printing of working
directory. To avoid this, we use --no-print-directory command in the script.
Also, there was a bug during coarray prelowering phase (undefined variable
ty1) that was fixed.
Contributor: Deepak |
dreachem |
434d 12h |
/branches/OpenUH/ |
| 3884 |
increasing patch level, now at 3.0.1 |
dreachem |
434d 15h |
/branches/OpenUH/ |
| 3883 |
[CAF] Misc fixes for CAF and compiling without CAF support
Changes in this commit are:
- Before, it did not allow any coarray components for derived types. In
Fortran 2008, however, it is allowed so long as it is declared as
allocatable/pointer.
Also, we add a check in back-end translation that a co-subscripted access of
a coarray will have offset 0 for the base address. This looks to be
generally the case, and it is necessary to correctly handle accesses to
components of derived type coscalars.
- There were some places (in particular, parser handler for end critical) that
were missing ifdef _UH_COARRAYS.
- only install libcaf-extra if configured with --enable-coarrays
Contributor: Deepak |
dreachem |
434d 15h |
/branches/OpenUH/ |
| 3880 |
Updating README.openuh text. |
dreachem |
436d 16h |
/branches/OpenUH/ |
| 3879 |
Misc fixes/additions to CAF suppport
Additions in this commit are:
- Adds a C version of the cafrun script (not currently used).
- Support for coarrays of character type
- Support for critical..end critical regions in CAF programs. Support for
critical sections are still "work in progress". Currently it uses a naive
implementation of a single global lock residing on image 1 that must be
acquired/released. Note that the GASNet implementation is based on Active
Messages, and appears to not work correctly when GASNet installation is
configured with the 'everything' segment configuration.
- Fixes support for allocatable coarrays declared in a module.
- Adds support for allocatable coscalar (that is, has codimensions but no
dimensions).
- Adds check that coarray's codimension specifier should never be 'explicit
shape'
- Fix for coarray accesses with non-unit stride. E.g.
a(1:N:2, 1:N)[p] = t
- Adds a libcaf-extra library which contains supplementary CAF-based routines
that can be used in CAF applications. Currently provides some basic
implementations for reductions and broadcasts. See caf-extra.caf in
/path/to/installation/include/4.2 for the interface.
Contributor: Deepak, Siddhartha, Tony |
dreachem |
437d 06h |
/branches/OpenUH/ |
| 3878 |
Tweaks to omprun, Dragon support, and other fixes
Changes added with this commit are:
- Initial C version of omprun to avoid shell stripping quotes (not currently
used, however).
- Adding support for srand and ran in Fortran.
- Use .dgn extension for Dragon project files instead of .d
- Fix memset arguments in CG (2nd and 3rd args were flipped).
- If -pfa option is given, compiler will now link in libopenmp
Contributors: Deepak, Tony, Wei |
dreachem |
437d 06h |
/branches/OpenUH/ |
| 3877 |
Misc. fixes for OpenMP/CAF, setting version to 3.0, and more
This makes a number of changes and fixes:
- We are setting the OpenUH version number to 3.0 for this commit.
- All configure arguments are now saved and will be printed when user uses -v
compiler option.
- Removes inline qualifier for __ompc_barrier_wait since it is now used in an
external file (omp_xbarrier.c)
- Adds LNO_Common_Loop back to ipl_summarize_util.cxx so that
-IPA:array_summary will work (used for Dragon analysis tool)
- Allow explicit lower bound on assumed shape coarray formal declarations
- Allow -g compilation with !DIR$ in .f files to allow building compiler's
runtime libraries with debug (--with-build-lib-optimize=debug)
- Bug fix for generating .rgn files (Dragon tool input) for multi-file
applications
- Adds a clean-be rule to Makefile
- Disables scalar renaming in LNO for OpenMP firstprivate variables. There was
an LNO bug that would erroneously rename scalar variables that are declared
as firstprivate in a parallel or task region within a loop nest. This is a
bug not only in OpenUH but also Open64. The scalar renaming was disabled
before if a variable was shared or reduction, but now we also disable it for
firstprivates.
Contributors: Deepak, Wei |
dreachem |
437d 06h |
/branches/OpenUH/ |
| 3812 |
Adding some new information to README.openuh about latest features. |
dreachem |
555d 10h |
/branches/OpenUH/ |
| 3811 |
[CAF] Adds new features to CAF runtime
- This adds a binomial tree implementation to support all-to-1 reductions.
- Adds a runtime technique to support non-blocking put in GASNet/ARMCI
implementations
- Adds a "get cache" implementation to support communication-computation
overlap via prefetching.
Added environment variables to enabling new features:
UHCAF_NBPUT
UHCAF_GETCACHE
UHCAF_GETCACHE_LINE_SIZE
Contributor: Debjyoti |
dreachem |
555d 10h |
/branches/OpenUH/ |
| 3810 |
Added DRAGON_SUPPORT_IN_OPENUH |
dreachem |
555d 10h |
/branches/OpenUH/ |
| 3809 |
Integration of new barrier algorithms
This integrates the barrier algorithms for improved scalability implemented
earlier into new compiler. Does not yet support nested parallel regions and
will not work properly with explicit tasks.
Use environment variable O64_OMP_XBARRIER_TYPE or --xbarrier-type option in
omprun script to specify alternative barrier algorithms
Contributor: Ram, Deepak |
dreachem |
555d 10h |
/branches/OpenUH/ |
| 3808 |
Misc. fixes to Makefiles and CAF configure
- omprun script fix for --nested
- adds --disable-caf-runtime option
- updates instructions on using CAF support.
- fixes check for link_gcpp
- other minor issues
Contributor: Deepak, Tony |
dreachem |
555d 10h |
/branches/OpenUH/ |
| 3807 |
Adds support for taskwait and collapse in Fortran FE
Note that it doesn't check if collapse count exceeds number of perfectly
nested loops in the front-end, but back-end was modified so that in this
case it will only collapse up to the available loops.
This also fixes a bug in lastprivate clause when collapse clause is also
used. It fixes the check for whether the executing thread executed the last
iteration when collapse clause is present.
Contributor: Deepak |
dreachem |
555d 10h |
/branches/OpenUH/ |
| 3806 |
[DRAGON] Patch to add dragon support in new OpenUH
This adds support for Dragon tool (in development) to OpenUH. When -dragon
flag is given, OpenUH will dump various files that can be used to display call
graph, control flow graph, and array region analysis.
This adds a configure option --enable-dragon-support to enable Dragon support.
By default, Dragon support is turned off.
Contributors: Oscar, Lei, Liao, Zhenying, Laksono, Deepak, Wei |
dreachem |
555d 10h |
/branches/OpenUH/ |
| 3805 |
[CAF] Adds some new scripts for uhcaf/cafrun
Adds new scripts and some improvements for configuration and installing. The
runtime build process will create runtime for various GASNet conduits that are
available. This adds a -link-gcpp flag will instructs the driver to use g++ as
the linker, and this is used to upport the GASNet udp conduit.
Note: gasnet-udp conduit will not work if IPA is enabled (CAF compilation will
fail).
Contributor: Deepak |
dreachem |
555d 10h |
/branches/OpenUH/ |
| 3804 |
Makes omprun a shell script
This is a shell script provided by Tony for omprun. Before it was written in
perl.
Contributor: Tony |
dreachem |
555d 10h |
/branches/OpenUH/ |
| 3803 |
Adds omp task support to Fortran FE
Adds support for omp task and untied clause.
Contributor: Deepak |
dreachem |
555d 10h |
/branches/OpenUH/ |
| 3802 |
[CAF] UHCAF patch 1
This adds suport for Fortran coarrays (defined in F2008 spec) to OpenUH.
See doc/USING_CAF_SUPPORT for more details on its usage.
Contributor: Deepak, Debjyoti |
dreachem |
555d 10h |
/branches/OpenUH/ |
| 3801 |
Adding new threadprivate implementation
The existing threadprivate implementation had many limitations. It did not
work correctly in nested parallel regions, and it was also buggy if a
threadprivate variable was used as a loop index in a parallel loop (bug 604).
We found a simpler, more effective, approach would be to convert threadprivate
variables into variables with thread-local storage (TLS). Other compilers,
like GNU, apparently use this approach. This commit converts all
threadprivates into TLS variables, and removes the usual translation that the
compiler does to initialize threadprivates.
This threadprivate implementation looks to work for C (not tested on C++).
However, it failed with Fortran codes that used threadprivate COMMON blocks
across multiple files. So, I use the older threadprivate implementation for
Fortran, and the new threadprivate implementation for C. We should look for a
better, more general solution later on.
Contributor: Deepak |
dreachem |
555d 10h |
/branches/OpenUH/ |
| 3800 |
Adds back original instrumentation phase
This moves the TAU/KOJAK instrumentation module into a separate file --
wn_instrument_tau.cxx. It can be selectively used with
--with-tau-instrumentation specified as a configure option, but it looks to
not be working correctly right now. The original Open64 instrumentation module
is now enabled by default.
Contributors: Wei, Oscar, Deepak |
dreachem |
555d 10h |
/branches/OpenUH/ |