Skip to content

drivere/get-decics-numberfields

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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).

About

Source code for the BOINC NumberFields project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published