-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
executable file
·65 lines (57 loc) · 3.21 KB
/
README
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
This is the general build process:
1. First build pari:
The objective here is to get the library: libpari.a
Here is what works on linux:
a. Can download from here: https://pari.math.u-bordeaux.fr/download.html
b. Untar and cd into pari directory
c. ./Configure
d. make all
e. make install-lib-sta (This basically copies the static library to /usr/local/lib/)
2. Next, build the boinc libraries:
The objective of this step is to get the following 2 libraries:
libboinc.a, and libboinc_api.a
Here is what works on linux:
a. Clone the boinc git repo: https://github.com/BOINC/boinc
b. cd boinc/
c. ./_autosetup
d. ./configure --disable-client --disable-server
e. make
f. make install (This copies the libraries to /usr/local/lib)
3. Next, build the GetDecics app.
There is a makefile for the various gpu types. For example, to build the Nvidia
openCL version, you would do:
make -f Makefile.openCL_Nvidia
The makefiles will need to be modified so that the compiler can find the source
files (both pari and boinc) and the libraries.
There is also a dependency on the gmp library, so that will need to be installed.
And obviously, openCL headers and libOpenCL will need to be present (and makefile
changed accordingly).
4. To test the executable:
a. cp executable into the Test directory.
b. Make sure you have a valid init_data.xml file. There are some samples in the
Test directory. If testing the lookup table, you will need an init_data.xml
file for your specific system. I get it by copying one from any BOINC slot
directory (any project will do since all you need are the xml tags related to
the GPU). If the system you are testing on is not attached to any project,
then you can copy an init_data.xml file from any system with the same GPU.
c. Remove the following files from previous runs if they exist:
stderr.txt, out, GetDecics_state, boinc_finish_called.
Note: The GetDecics_state file is the checkpoint file. Results will be
incomplete if this file is present when starting a run.
d. Setup a link named "in" for the dat file you want to test
(e.g. ln -fs sf5_DS-14x11_Grp10973of705883.dat in)
e. If using the lookup table gpuLookupTable.txt, either change the row for your
GPU or add a new row if your GPU is not listed. The name in the lookup table
must be a substring of the BOINC generated GPU string. Spaces are ignored
when comparing strings. When in doubt, do an initial run and look near the
top of stderr.txt for the BOINC GPU string. For example, BOINC reported my
GPU as "[CUDA|GeForceGTX1050|1|1992MB|45066|102]", so I used the name
"GTX 1050" in the lookup table.
f. Finally run the executable: ./GetDecics
There are 2 optional command line arguments that can override sizing parameters:
./GetDecics --numBlocks XX --threadsPerBlock YY
When using the lookup table, you can ignore these command line arguments.
g. Also see the README in the Test directory.
A successful run will produce some output files. If there are problems, stderr.txt
may have some clues. The important file is called "out". There are truth files in
the test directory for comparison (old cpu versions, so they have long run times).