I am trying to complete the (1,0)c/8 width-19 symmetric spaceship search with qfind. I did a preliminary search a while back, but realized it would take too long to complete on a single computer. To finish it I decided to split the current search state into 168 pieces that can be run separately. I'm hoping others can run parts of the search on their computers.
How to help:
- Download and extract this zip file:
- Compile qfind-c8.cpp using OpenMP. For example, I compile with
Code: Select all
g++ qfind-c8.cpp -O3 -fopenmp -march=native -o qfind-c8
- Claim a piece of the search by editing the table on this wiki page. If you don't have a wiki account, post which pieces you are claiming in this thread. Hopefully I or someone else will add them to the wiki table fairly quickly.
- Run the search on the specified piece with a specified number of threads. For example, if you claimed piece 0001 and want to run with 3 threads, then run
This will send the output to the file "output0001".
Code: Select all
./qfind-c8 piece0001 t3 > output0001
- When the search completes it will create a report file, "reportNNNN" where NNNN is the piece number, which gives the longest partial result. Go to the table, click the red link for the report, and create the page with the contents pasted from the report file on your computer.
- If the search finds a ship, it will print it and save it to the file "ship0001". Further ships will be saved to "ship0002", "ship0003", etc. Post any ships that get found to this thread.
A few things to note:
- The search uses about 2.4 gigabytes of RAM. If you don't have this much RAM available you simply won't be able to run the search.
- I haven't actually finished a single search yet. I ran some tests using 7 threads on an 8-core machine, and I think that under these conditions the shortest searches will take about 4 or 5 hours. Some searches may take days or weeks. We might have to split some of them again to get this project done.
- As a search runs, dump files will be created in the pieces folder called "dumpMMMM-NNNN" where MMMM is the piece number and NNNN is the dump number. If a search gets killed early it can be restarted from the latest dump file. For example, you may need to run
Note that you need to respecify the number of threads when continuing a search from a dump file.
Code: Select all
./qfind-c8 dump0001-0017 t3 > output0001-continued
- Sometimes a file called "pushNNNN" will be created where NNNN is the piece number. This will contain partial results that are "potential pushalongs". For the most part they will be uninteresting, so don't worry about them too much. It won't be clear what front end they are a pushalong for, so another search would have to be run to determine that. These probably won't be useful for anything, but I wanted to save them anyway, just in case.
Technical note:
I did not change gind3 to an array of type std::atomic_uintptr_t as suggested in this post, because I'm not sure how to do it correctly. If anyone more knowledgable could explain it, I would appreciate it.