44
55# [ Getting Started] ( #getting-started ) #
66
7- * [ Compiling a CAF Program]
8- * [ The caf compiler wrapper]
9- * [ A sample basic workflow]
10- * [ Sample advanced workflows]
11- * [ Executing a CAF Program]
12- * [ The cafrun program launcher]
13-
14- <a name =" compiling-a-caf-program " >
15- ## Compiling a CAF Program ##
16- </a >
7+ * [ The caf compiler wrapper]
8+ * [ A sample basic workflow]
9+ * [ An advanced workflow]
1710
1811<a name =" the-caf-compiler-wrapper " >
19- ### The caf compiler wrapper # ##
12+ ## The caf compiler wrapper ##
2013</a >
2114
2215The preferred method for compiling a CAF program is by invoking the "caf" bash script
@@ -51,14 +44,14 @@ For example, a non-OCA CAF compiler, such as the Cray or Intel compilers, might
5144program's coarray square-bracket syntax, while OpenCoarrays supports the same program's calls to
5245collective subroutine such as ` co_sum ` and ` co_reduce ` .
5346
54- <a name =" a-sample-basic-workflow " >
55- ### A sample basic workflow # ##
47+ <a name =" workflow-with-oca-aware-compiler " >
48+ ## A sample basic workflow ##
5649</a >
5750
58- ## Compiling and Running with an OpenCoarrays-aware (OCA) CAF Compiler</ a > ##
59-
60- Inserting the "bin" directory of the chosen installation path into the user's PATH enables the following
61- CAF program compilation and execution workflow :
51+ The following program listing, compilation, and execution workflow exemplify
52+ the use of an OCA compiler (e.g., gfortran 5.1.0 or later) in a Linux bash shell
53+ with the "bin" directory of the chosen installation path in the user's PATH
54+ environment variable :
6255
6356 $ cat tally.f90
6457 program main
@@ -86,19 +79,19 @@ CAF program compilation and execution workflow:
8679where "4" is the number of images to be launched at program start-up.
8780
8881<a name="extending-a-non-oca-CAF-compiler"
89- ## Extending a Non-OCA CAF Compiler </a > ##
82+ ## An advanced workflows </a > ##
9083
91- To extend the capabilities of a non-OCA CAF compiler (e.g., the Intel or Cray compilers)
92- or a non-CAF compiler (e.g., GCC 4.9), access the types and procedures of the
93- [ opencoarrays module] by use assocication. For example, insert the following at line 2
94- in the above example:
84+ To extend the capabilities of a non-OCA CAF compiler (e.g., the Intel or Cray compilers),
85+ access the types and procedures of the [ opencoarrays module] by use assocication. We
86+ recommend using a ` use ` statement with an ` only ` clause to reduce the likelihood of a
87+ name clash with the compiler's native CAf support. For eample, innsert the following
88+ at line 2 of ` tally.f90 ` above:
9589
9690 use opencoarrays, only : co_sum
9791
98- Then compile with the "caf" compiler wrapper and launch with "cafrun" program launcher.
99-
100- <a name =" sample-advanced-workflow " >
101- ### A sample advanced workflows</a > ###
92+ To extend the capabilities of a non-CAF compiler (e.g., GCC 4.9), use an unqualified
93+ ` use ` statement with no ` only ` clause. The latter practrice reduces the likelihood of
94+ name clashes with the compiler's or programs existing capabilities.
10295
10396If the "caf" compiler wrapper cannot process the source code in question, invoke
10497the underlying communication library directly:
@@ -119,6 +112,7 @@ and also run the program with the lower-level commnication library:
119112[ The caf compiler wrapper ] : #the-caf-compiler-wrapper
120113[ The cafrun program launcher ] : #the-cafrun-program-launcher
121114[ Compiling a CAF Program ] : #compiling-a-caf-program
122- [ A sample basic workflow] : #a-sample-basic-workflow
115+ [ workflow-with-oca-aware-compiler ] : #workflow-with-oca-aware-compiler
123116[ Sample advanced workflows ] : #sample-advanced-workflows
124- [ Executing a CAF program ] : #executing-a-caf-program
117+ [ or a non-CAF compiler (e.g., GCC 4.9)Executing a CAF program ] : #executing-a-caf-program
118+
0 commit comments