d92eb354bd58438f953391917af6dbbe3026a211
[guile-orca] / README.md
1 # orca
2
3 Orca, a Guile (https://www.gnu.org/s/guile/) library that aims to provide
4 Remote Procedure Call (RPC) capabilities using Message Passing Interface (MPI).
5
6 ## Getting Started
7
8 ### Dependencies
9
10 * libmpich12
11 * Guile (2.2, 2.4, 3.0)
12 * GNU make tools
13
14 ### Installing
15
16 * ./bootstrap
17 * ./configure
18 * sudo make install
19
20 ### Using library
21
22 * Code to gather computation results from all processes:
23 ```
24 (use-modules (orca))
25
26 (define (process-id-message) (format #f "process ~a" (rpc-worker-process-id)))
27
28 (rpc-start)
29
30 (format #t "I'm master process. Received ~s ~%" (rpc-make '(process-id-message)))
31
32 (rpc-finalize)
33 ```
34
35 * Command to run program using 4 processes:
36 ```
37 mpirun -n 4 ./rpc-print-process-ids.scm
38 ```
39
40 * Output of the command:
41 ```
42 I'm master process. Received ("process 0" "process 1" "process 2" "process 3")
43 ```
44
45 See `examples` directory for more examples.
46
47 ## Authors
48
49 - Ahmet Artu Yildirim
50
51 ## Version History
52
53 * 0.1
54     * Initial Release
55
56 ## License
57
58 This project is licensed under the GNU Lesser General Public License - see
59 the COPYING.LESSER file for details.
60
61 Please send comments on orca to **ahmet@artulab.com**
62
63 Copyright (C) 2020  Ahmet Artu Yildirim