You're right. I'll have to look into this. Thanks for the report.
qfind - a spaceship search program
Re: qfind - a spaceship search program
-Matthias Merzenich
Re: qfind - a spaceship search program
How do you find a c/6 diagonal instead of a 2c/6 orthogonal?
Re: qfind - a spaceship search program
AFAIK qfind doesn't support non-orthogonal searches.
Each day is a hidden opportunity, a frozen waterfall that's waiting to be realised, and one that I'll probably be ignoring
anythingsonata wrote:July 2nd, 2020, 8:33 pmconwaylife signatures are amazing[citation needed]
qfind v2.1 released (Re: qfind - a spaceship search program)
qfind v2.1 released
Changes:
Changes:
- If the cache memory option (-c) is not set, qfind will automatically enable lookahead caching for speeds greater than c/5 and will disable it otherwise. There is no longer a need to compile two different versions of qfind, as setting -c 0 will disable lookahead caching. qfind-s will also automatically determine whether to use lookahead caching, although the choice can be set manually by defining the macro NOCACHE or FORCECACHE in qfind-s.cpp.
- I changed the "disable longest partial output" (-a) and "disable output while deepening" (-z) options to toggles. Previously, the longest partial output and output while deepening were enabled by default and could be disabled but not reenabled.
- I replaced the Golly Python script get-rows.py with the Golly Lua script get-rows.lua.
- I fixed a bug that caused redundant output to be printed.
There was a bug that sometimes caused non-monotonic spaceships to be printed twice in a row. It should be fixed now. Thanks again for the bug report.
As bubblegum said, qfind only supports orthogonal spaceship searches, and I have no intention of adding support for non-orthogonal ships. Based on experiments with zfind, non-orthogonal ship searching with qfind would be slower than the same searches with WLS or ikpx2.
-Matthias Merzenich
- yujh
- Posts: 3069
- Joined: February 27th, 2020, 11:23 pm
- Location: I'm not sure where I am, so please tell me if you know
- Contact:
Re: qfind - a spaceship search program
Sorry for this, can I request for a precompiled on windows version again?
(Or wich version of c++ should I use?)
Edited by yujh: thanks again! AND I found myself unable to use all of these things
(Or wich version of c++ should I use?)
Edited by yujh: thanks again! AND I found myself unable to use all of these things
Last edited by yujh on May 3rd, 2021, 5:26 am, edited 1 time in total.
Rule modifier
B34kz5e7c8/S23-a4ityz5k
b2n3-q5y6cn7s23-k4c8
B3-kq6cn8/S2-i3-a4ciyz8
B3-kq4z5e7c8/S2-ci3-a4ciq5ek6eik7
Bored of Conway's Game of Life? Try Pedestrian Life -- not pedestrian at all!
B34kz5e7c8/S23-a4ityz5k
b2n3-q5y6cn7s23-k4c8
B3-kq6cn8/S2-i3-a4ciyz8
B3-kq4z5e7c8/S2-ci3-a4ciq5ek6eik7
Bored of Conway's Game of Life? Try Pedestrian Life -- not pedestrian at all!
Re: qfind - a spaceship search program
Try this: This was compiled under Mingw-w64 using
Code: Select all
g++ qfind.cpp -static -O3 -fopenmp -o qfind
To compile it yourself, you need a C++ compiler that works with your operating system and supports OpenMP. GCC and Clang are popular. As I mentioned, the attached version was compiled using g++ (the C++ compiler in GCC) under Mingw-w64.
-Matthias Merzenich
- yujh
- Posts: 3069
- Joined: February 27th, 2020, 11:23 pm
- Location: I'm not sure where I am, so please tell me if you know
- Contact:
Re: qfind - a spaceship search program
I guess if there it could support generation rules? (Or probably there’s better ways to go for it?)
Rule modifier
B34kz5e7c8/S23-a4ityz5k
b2n3-q5y6cn7s23-k4c8
B3-kq6cn8/S2-i3-a4ciyz8
B3-kq4z5e7c8/S2-ci3-a4ciq5ek6eik7
Bored of Conway's Game of Life? Try Pedestrian Life -- not pedestrian at all!
B34kz5e7c8/S23-a4ityz5k
b2n3-q5y6cn7s23-k4c8
B3-kq6cn8/S2-i3-a4ciyz8
B3-kq4z5e7c8/S2-ci3-a4ciq5ek6eik7
Bored of Conway's Game of Life? Try Pedestrian Life -- not pedestrian at all!
- LaundryPizza03
- Posts: 2333
- Joined: December 15th, 2017, 12:05 am
- Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"
Re: qfind - a spaceship search program
I could make and set up LLVM according to these directions, but I couldn't use OpenMP using the -fopenmp tag.
Also, git pull does not seem to work anymore on Big Sur.
Code: Select all
> cd ~/qfind
> g++ qfind.cpp -static -O3 -fopenmp -o qfind
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
Code: Select all
x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
Re: qfind - a spaceship search program
I suspect you would want to use clang++, not g++ (since g++ is part of GCC, not LLVM). It appears MacOS calls clang++ when you use g++, but I'm not sure whether it's calling the version you just installed or the version that comes with MacOS. I think the MacOS clang doesn't automatically support OpenMP. You might be able to determine whether the correct version of clang is being used by running "clang --version" and comparing the results to whatever you installed. If you do figure out what the problem is, it might be helpful to other users to post your solution here.LaundryPizza03 wrote: ↑May 3rd, 2021, 10:18 amI could make and set up LLVM according to these directions, but I couldn't use OpenMP using the -fopenmp tag.Code: Select all
> cd ~/qfind > g++ qfind.cpp -static -O3 -fopenmp -o qfind clang: error: unsupported option '-fopenmp' clang: error: unsupported option '-fopenmp'
Is there a reason for using this version of clang and not the latest official version? According to this link,LaundryPizza03 wrote: ↑May 3rd, 2021, 10:18 amI could make and set up LLVM according to these directions
With the release of Clang 3.8.0, OpenMP 3.1 support is enabled in Clang by default, and the OpenMP runtime is therefore built as a normal part of the Clang build, and distributed with the binary distributions.
qfind's method would not work well with many-state rules, because it would require even more memory to store the lookup tables.
-Matthias Merzenich
- LaundryPizza03
- Posts: 2333
- Joined: December 15th, 2017, 12:05 am
- Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"
Re: qfind - a spaceship search program
The version called by the clang command is 12.0.0. I can't determine the version I installed via llvm-project.Sokwe wrote: ↑May 3rd, 2021, 5:53 pmI suspect you would want to use clang++, not g++ (since g++ is part of GCC, not LLVM). It appears MacOS calls clang++ when you use g++, but I'm not sure whether it's calling the version you just installed or the version that comes with MacOS. I think the MacOS clang doesn't automatically support OpenMP. You might be able to determine whether the correct version of clang is being used by running "clang --version" and comparing the results to whatever you installed. If you do figure out what the problem is, it might be helpful to other users to post your solution here.LaundryPizza03 wrote: ↑May 3rd, 2021, 10:18 amI could make and set up LLVM according to these directions, but I couldn't use OpenMP using the -fopenmp tag.Code: Select all
> cd ~/qfind > g++ qfind.cpp -static -O3 -fopenmp -o qfind clang: error: unsupported option '-fopenmp' clang: error: unsupported option '-fopenmp'
Code: Select all
x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
-
- Posts: 1334
- Joined: July 1st, 2016, 3:58 pm
Re: qfind - a spaceship search program
I think this is a bug:
somehow gives less max depth than
when it should be at least equal.
Code: Select all
./qfind -r B3/S23 -p 17 -w 7 -y 7 -s o -t 8 -f 1
somehow gives less max depth than
Code: Select all
./qfind -r B3/S23 -p 17 -w 6 -y 7 -s o -t 8 -f 1
I manage the 5S project, which collects all known spaceship speeds in Isotropic Non-totalistic rules. I also wrote EPE, a tool for searching in the INT rulespace.
Things to work on:
- Find (7,1)c/8 and 9c/10 ships in non-B0 INT.
- EPE improvements.
Things to work on:
- Find (7,1)c/8 and 9c/10 ships in non-B0 INT.
- EPE improvements.
Re: qfind - a spaceship search program
Can you post the exact output from both runs?AforAmpere wrote: ↑May 22nd, 2021, 9:41 pmI think this is a bug:Code: Select all
./qfind -r B3/S23 -p 17 -w 7 -y 7 -s o -t 8 -f 1
somehow gives less max depth thanwhen it should be at least equal.Code: Select all
./qfind -r B3/S23 -p 17 -w 6 -y 7 -s o -t 8 -f 1
-Matthias Merzenich
-
- Posts: 1334
- Joined: July 1st, 2016, 3:58 pm
Re: qfind - a spaceship search program
First one:
Code: Select all
qfind v2.1 by Matthias Merzenich, 3 May 2021
Input: ./qfind -r B3/S23 -p 17 -w 7 -y 7 -s o -t 8 -f 1
Rule: B3/S23
Period: 17
Offset: 7
Width: 7
Symmetry: odd
Queue size: 2^20
Hash table size: 2^20
Minimum deepening increment: 17
Cache memory per thread: 32 megabytes
Number of threads: 8
Starting search
Queue full, depth 6, deepening 17, 131k/143k -> 2.5k/3.7k
Queue full, depth 8, deepening 32, 131k/146k -> 661/1.4k
Queue full, depth 10, deepening 47, 131k/146k -> 597/1.6k
Queue full, depth 14, deepening 60, 131k/159k -> 512/2.1k
Queue full, depth 17, deepening 74, 131k/154k -> 321/1.9k
Queue full, depth 21, deepening 87, 131k/157k -> 159/1.5k
Queue full, depth 26, deepening 99, 131k/177k -> 79/1.0k
Queue full, depth 32, deepening 110, 131k/187k -> 48/815
Queue full, depth 39, deepening 120, 131k/200k -> 26/518
Queue full, depth 50, deepening 126, 131k/280k -> 12/407
Queue full, depth 62, deepening 131, 131k/252k -> 2/113
Queue full, depth 78, deepening 132, 131k/252k -> 2/87
Queue full, depth 94, deepening 133, 131k/270k -> 0/0
Search complete.
0 spaceships found.
Maximum depth reached: 94
Longest partial result:
x = 5, y = 5, rule = B3/S23
2ob2o$o3bo$o3bo$bobo$2bo!
Code: Select all
qfind v2.1 by Matthias Merzenich, 3 May 2021
Input: ./qfind -r B3/S23 -p 17 -w 6 -y 7 -s o -t 8 -f 1
Rule: B3/S23
Period: 17
Offset: 7
Width: 6
Symmetry: odd
Queue size: 2^20
Hash table size: 2^20
Minimum deepening increment: 17
Cache memory per thread: 32 megabytes
Number of threads: 8
Starting search
Queue full, depth 7, deepening 17, 131k/150k -> 639/1.1k
Queue full, depth 10, deepening 31, 131k/156k -> 227/633
Queue full, depth 16, deepening 42, 131k/190k -> 208/1.1k
Queue full, depth 20, deepening 55, 131k/170k -> 89/817
Queue full, depth 27, deepening 65, 131k/185k -> 53/674
Queue full, depth 48, deepening 61, 131k/866k -> 63/1.2k
Queue full, depth 65, deepening 61, 131k/375k -> 46/927
Queue full, depth 82, deepening 61, 131k/507k -> 15/485
Queue full, depth 107, deepening 53, 131k/630k -> 11/332
Queue full, depth 147, deepening 30, 131k/489k -> 0/0
Search complete.
0 spaceships found.
Maximum depth reached: 147
Longest partial result:
x = 11, y = 8, rule = B3/S23
4bobo$3o5b3o$2ob5ob2o$b3obob3o$2b2o3b2o$4bobo2$4b3o!
I manage the 5S project, which collects all known spaceship speeds in Isotropic Non-totalistic rules. I also wrote EPE, a tool for searching in the INT rulespace.
Things to work on:
- Find (7,1)c/8 and 9c/10 ships in non-B0 INT.
- EPE improvements.
Things to work on:
- Find (7,1)c/8 and 9c/10 ships in non-B0 INT.
- EPE improvements.
Re: qfind - a spaceship search program
This isn't really a bug. It's just a result of my imperfect implementation of the longest partial feature. It only keeps track of the longest partial found during the breadth-first stage, not during the depth-first stage. Notice that both searches end with "-> 0/0". This means that all partial results are eliminated during the depth-first stage, so the "longest" partial reported will be the depth at the end of the breadth-first stage. This is 94 for the -w 7 search, and 147 for the -w 6 search. However, the true longest partial for the -w 7 search has length somewhere between 78 + 132 = 210 and 94 + 133 = 227, while the true longest partial for the -w 6 search has length somewhere between 107 + 53 = 160 and 147 + 30 = 177.AforAmpere wrote: ↑May 22nd, 2021, 10:31 pmFirst one:Second one:Code: Select all
...
Code: Select all
...
If you are using the dump feature (-d option) to save the state of the search, you can restart the search from the last saved state and increase the queue size (-q option) and decrease the next deepening amount during the depth-first step (use -n 0). If the last line of the search ends with "-> M/N" where M and N aren't 0, then the longest partial should be accurate.
-Matthias Merzenich
- ihatecorderships
- Posts: 309
- Joined: April 11th, 2021, 12:54 pm
- Location: Falls Church, VA
Re: qfind - a spaceship search program
How can I compile qfind using Microsoft Visual studio 2019 community? I don't know how to use it.
-- Kalan Warusa
Don't drink and drive, think and derive.
Don't drink and drive, think and derive.
- ihatecorderships
- Posts: 309
- Joined: April 11th, 2021, 12:54 pm
- Location: Falls Church, VA
Re: qfind - a spaceship search program
I see the command to compile it, but where do I enter that? Sorry, I'm not familiar with command-line things.
-- Kalan Warusa
Don't drink and drive, think and derive.
Don't drink and drive, think and derive.
Re: qfind - a spaceship search program
Just type it in.ihatecorderships wrote: ↑May 24th, 2021, 2:58 pmI see the command to compile it, but where do I enter that? Sorry, I'm not familiar with command-line things.
- ihatecorderships
- Posts: 309
- Joined: April 11th, 2021, 12:54 pm
- Location: Falls Church, VA
Re: qfind - a spaceship search program
But where? I've typed it in on the first page I see when I open the code with visual studio, and hit enter, but it doesn't do anything.
Forgive me if I'm being silly.
- Attachments
-
- Screenshot (22).png (80.52 KiB) Viewed 6249 times
-- Kalan Warusa
Don't drink and drive, think and derive.
Don't drink and drive, think and derive.
Re: qfind - a spaceship search program
Try installing Git and select all the defaul options except the final one. Do the opposite of the default option for the final one. Type in the command you see in the readme.md there.
Re: qfind - a spaceship search program
Hang on, no, don't try that. Those instructions are too vague for anyone with the problem shown in the above screenshot to have any chance of executing successfully.
The problem with the screenshot is clear: there's a command to compile qfind.cpp, but you're trying to type it into the IDE itself -- thus making a change to the source code of qfind.cpp, and thereby absolutely guaranteeing that the code will never compile again (until you remove that final line that you typed in).
Commands like the g++ compile command are supposed to be typed into a command-line window, NOT into the code editor of the Visual Studio IDE. Finding a command prompt in Visual Studio Community Edition doesn't seem to be as easy or as foolproof as it should be, and it's best if you understand a little bit about changing directories and so forth, via a command line.
However, you might try searching for "x64 Native Tools Command Prompt for VS 2019" in your Start bar, and choose the black-rectangle icon that should pop up. That's a sample of a command line.
I don't actually know if that's the command line that you'll need to compile qfind.cpp. There are command environments with all kinds of different preset variables, which can have strange and mysterious effects when you're trying to compile. Maybe someone who has actually successfully compiled and used qfind with VS 2019 Community Edition could give some specific advice here?
Re: qfind - a spaceship search program
Microsoft's compiler is called 'cl' rather than 'g++'. You can technically get qfind to compile by changing to the correct directorydvgrn wrote: ↑May 24th, 2021, 4:49 pmI don't actually know if that's the command line that you'll need to compile qfind.cpp. There are command environments with all kinds of different preset variables, which can have strange and mysterious effects when you're trying to compile. Maybe someone who has actually successfully compiled and used qfind with VS 2019 Community Edition could give some specific advice here?
Code: Select all
cd C:\example\path
Code: Select all
cl qfind.cpp
This might show you what compiling via the command line looks like, in a general way. Microsoft's 'cl' compiler obligingly produces an executable file called qfind.exe.
HOWEVER, this is probably not a good idea. 'cl' is Microsoft's home-grown compiler, and it doesn't support the same set of command-line options that g++ does. You'll get "unknown command" errors if you try to pass in the parameters that the readme tells you to -- -fopenmp -march=native, etc.
Now, you can use Visual Studio to compile Linux-style C++ programs using g++. But I'm fairly sure you aren't going to want to try that, either -- that will just send you down a different rabbit hole of far too much terminology that you'd have to learn before you'd realistically have a chance of success.
Instead, it's probably better to do something along the lines of what cgoler2 suggested -- though I'm not clear why Git was mentioned. I would say
1) install Cygwin, following the same advice that is given for compiling apgsearch -- install the gcc-g++ package. I don't think you really need to install git, make, or python for this particular compilation problem.
EDIT: Don't let inexperience with the Cygwin installer make you panic and install random stuff. Don't choose to install anything until you can find the choice that says "gcc-g++" and nothing else. There's a search function that should make this easy, once you figure out how to use the search. Installing all the other things that say something slightly different from "gcc-g++" won't do you any good at all. I'm speaking from experience here...
2) open a Cygwin64 terminal, by searching for "Cygwin64 Terminal" via your Start bar.
3) use the "cd" command as before, to switch directories to where your copy of qfind.cpp is stored.
4) Now try the command from the readme --
Code: Select all
g++ qfind.cpp -O3 -fopenmp -march=native -o qfind
Code: Select all
ls
I just tried all these steps myself (for the first time, so it's not like I really know what I'm doing) and got g++ to produce a qfind.exe executable file, without any errors. That's a good start.
Can someone with some experience tell me what parameters I can pass into qfind to run a quick successful search, and show that it's really working?
Re: qfind - a spaceship search program
Code: Select all
./qfind --rule B3/S2-i34q -p 5 -y 1 -w 1 -s odd
Code: Select all
./qfind --help
Re: qfind - a spaceship search program
Thanks! The program seems to be working, through "--rule" gives an error. --help seems to say I should be using "-r".cgoler2 wrote: ↑May 24th, 2021, 6:02 pmshould return the T-tetromino.Code: Select all
./qfind --rule B3/S2-i34q -p 5 -y 1 -w 1 -s odd
gives you a list of commands.Code: Select all
./qfind --help
However, then I don't get any spaceships. I'd say that my compilation experiment seems to have succeeded... but maybe there's still something subtle going wrong here. (?)
Code: Select all
$ ./qfind -r B3/S2-i34q -p 5 -y 1 -w 1 -s odd
qfind v2.1 by Matthias Merzenich, 3 May 2021
Input: ./qfind -r B3/S2-i34q -p 5 -y 1 -w 1 -s odd
Rule: B3/S2-i34q
Period: 5
Offset: 1
Width: 1
Symmetry: odd
Queue size: 2^20
Hash table size: 2^20
Minimum deepening increment: 5
Lookahead caching disabled
Number of threads: 1
Starting search
Search complete.
0 spaceships found.
Maximum depth reached: 0
No partial results found.