apgsearch v2.2

For general discussion about Conway's Game of Life.
User avatar
A for awesome
Posts: 2037
Joined: September 13th, 2014, 5:36 pm
Location: 0x-1
Contact:

Re: apgsearch v2.2

Post by A for awesome » February 10th, 2016, 6:29 pm

A for awesome wrote:
calcyman wrote:Erm... why is this called z_LINEAR rather than zz_LINEAR?

https://catagolue.appspot.com/object/z_ ... 3678s34678

This has the worrying implication that +0.*i is actually forked from an older (buggier) version of apgsearch instead of the latest version.
I'm sorry about that. I had no idea that there was any bug in the infinite-growth detection; I tried to paste all changes between 1.x from 0.x when I made +0.2Ni, but it appears I missed something. What is the bug, anyway?
Phew! The only difference I can find between +0.2Ni's and 1.x's infinite growth detection is the extra z's. To fix that, just replace the powerlyse() function in +0.2Ni with this version (with extra z's inserted):

Code: Select all

def powerlyse(stepsize, numsteps, ruletype):
    if ruletype:
        g.setalgo("HashLife")
    else:
        g.setalgo("RuleLoader")
    g.setbase(2)
    g.setstep(stepsize)

    poplist = [0]*numsteps

    poplist[0] = int(g.getpop())

    pointlist = []

    for i in xrange(1, numsteps, 1):

        g.step()
        poplist[i] = int(g.getpop()) + poplist[i-1]

        if (i % 50 == 0):

            g.fit()
            g.update()

        if (i > numsteps/2):

            pointlist.append((math.log(i),math.log(poplist[i]+1.0)))

    power = regress(pointlist)

    if (power < 1.10):
        return "unidentified"
    elif (power < 1.65):
        return "zz_REPLICATOR"
    elif (power < 2.05):
        return "zz_LINEAR"
    elif (power < 2.8):
        return "zz_EXPLOSIVE"
    else:
        return "zz_QUADRATIC"
x₁=ηx
V ⃰_η=c²√(Λη)
K=(Λu²)/2
Pₐ=1−1/(∫^∞_t₀(p(t)ˡ⁽ᵗ⁾)dt)

$$x_1=\eta x$$
$$V^*_\eta=c^2\sqrt{\Lambda\eta}$$
$$K=\frac{\Lambda u^2}2$$
$$P_a=1-\frac1{\int^\infty_{t_0}p(t)^{l(t)}dt}$$

http://conwaylife.com/wiki/A_for_all

Aidan F. Pierce

User avatar
drc
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Post by drc » February 10th, 2016, 7:08 pm

Catagolue-I MEAN APGSEARCH 1.0-has become completely unusable. Everytime I put it on in the background while watching youtube, it freezes my entire computer for no reason.
Last edited by drc on February 11th, 2016, 4:33 pm, edited 1 time in total.
\100\97\110\105

David
Posts: 212
Joined: November 3rd, 2009, 2:47 am
Location: Daejeon, South Korea

Re: apgsearch v2.2

Post by David » February 11th, 2016, 4:44 am

drc wrote:Catagolue has become completely unusable. Everytime I put it on in the background while watching youtube, it freezes my entire computer for no reason.
In my computer, it works fine. View it on Google Chrome maybe?
Call me "Dannyu NDos" in Forum. Call me "Park Shinhwan"(박신환) in Wiki.

User avatar
calcyman
Posts: 2198
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Post by calcyman » February 11th, 2016, 7:41 am

drc wrote:I censused a really long rule, so now the format is off.
Yes, I've seen your b2-akn3ci4jnr5ikns12-ck4einqy5er6-ckn8/C1 census... :evil:
drc wrote:Catagolue has become completely unusable. Everytime I put it on in the background while watching youtube, it freezes my entire computer for no reason.
How much memory do you have, and what's your operating system? It seems fine on my laptop (both Windows 7 and Kali Linux) with 6 gigabytes of memory. (Basically my laptop only came with 2 gigabytes, which was horribly insufficient even for banal tasks, so I disassembled it and inserted an extra 4-gigabyte memory card.)
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
drc
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Post by drc » February 11th, 2016, 4:32 pm

calcyman wrote:How much memory do you have, and what's your operating system? It seems fine on my laptop (both Windows 7 and Kali Linux) with 6 gigabytes of memory. (Basically my laptop only came with 2 gigabytes, which was horribly insufficient even for banal tasks, so I disassembled it and inserted an extra 4-gigabyte memory card.)
(Whoops, I meant apgsearch 1.0)

I have 4 gigs. It was working fine until yesterday when it kept freezing. Also, golly uses ~20 cpu.
\100\97\110\105

User avatar
drc
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Post by drc » February 11th, 2016, 6:05 pm

Actually, it seemed to be chrome, I switched to chromium and that seemed to work
\100\97\110\105

David
Posts: 212
Joined: November 3rd, 2009, 2:47 am
Location: Daejeon, South Korea

Re: apgsearch v2.2

Post by David » February 12th, 2016, 10:04 am

My computer has 4 cores and 8 threads, so I've inputed -p 8. Is it wrong? It runs too slow.

Add: How can I dismiss the process manually?
Call me "Dannyu NDos" in Forum. Call me "Park Shinhwan"(박신환) in Wiki.

User avatar
biggiemac
Posts: 504
Joined: September 17th, 2014, 12:21 am
Location: California, USA

Re: apgsearch v2.2

Post by biggiemac » February 12th, 2016, 12:39 pm

David wrote:My computer has 4 cores and 8 threads, so I've inputed -p 8. Is it wrong? It runs too slow.

Add: How can I dismiss the process manually?
I'm not sure where you get an "8 threads" number from. A computer can in theory run as many threads as it is told. While it is certainly possible to tell the computer to run multiple threads per core, the CPU ends up doing what is called "Context switching" to ensure each thread it is managing gets some runtime. Context switching involves copying all of the current state to memory and loading the other thread, which is like working two jobs but having to drive an hour between each multiple times a day, so you'd spend a few minutes working, and then a lot of time merely traveling.

It is best with apgnano to dispatch a single thread per core so that the cores can give the program their undivided attention.

From a terminal, you can suspend a job with Ctrl-Z, resuming it later with "fg", or you can kill a program with Ctrl-C.
Physics: sophistication from simplicity.

User avatar
calcyman
Posts: 2198
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Post by calcyman » February 12th, 2016, 2:46 pm

I think he might be talking about hyperthreading...?

I'm working on apgsearch v3 at the moment, which will hopefully have the following three modes of operation:
  • SSE2 (like apgnano)
  • AVX2 (which is theoretically twice as fast, but only exists on modern CPUs)
  • GPU
and possibly support for other rules/symmetries.
What do you do with ill crystallographers? Take them to the mono-clinic!

David
Posts: 212
Joined: November 3rd, 2009, 2:47 am
Location: Daejeon, South Korea

Re: apgsearch v2.2

Post by David » February 12th, 2016, 6:38 pm

apgnano doesn't work when I enter my payosha256 key.
Call me "Dannyu NDos" in Forum. Call me "Park Shinhwan"(박신환) in Wiki.

User avatar
calcyman
Posts: 2198
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Post by calcyman » February 12th, 2016, 7:15 pm

David wrote:apgnano doesn't work when I enter my payosha256 key.
It you have strange symbols in your key, you might need to escape them in the command-line. At the very least, if it's not purely alphanumeric, surround your key with single or double quotes.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
drc
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Post by drc » February 13th, 2016, 1:39 pm

YOu should make it report each new unique object as it finds them, kinda like apgsearch v1.0 (the Golly one), so it would look like this:

New object: xs4_33
New object: xp2_7
New object: xs5_253
New object: xp2_7e
New object: xs6_356
New object: xs7_2596
New object: xq4_153
\100\97\110\105

User avatar
drc
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Post by drc » February 14th, 2016, 1:13 pm

Apgnano has slowed down from 1400 to 400 in a day. What happened?
\100\97\110\105

User avatar
calcyman
Posts: 2198
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Post by calcyman » February 14th, 2016, 2:05 pm

drc wrote:Apgnano has slowed down from 1400 to 400 in a day. What happened?
Check your RAM and CPU usage; it's possible something else is causing a performance drain. (Either use 'Windows Task Manager' or 'top', depending on your OS.)
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
calcyman
Posts: 2198
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Post by calcyman » February 21st, 2016, 11:46 am

Yesterday evening at 19:44, Catagolue celebrated its first anniversary.

At this point it had 50002 billion objects in the b3s23/C1 census. I was hoping to pass the 50 * 10^12 object mark within the first year of operation, and we succeeded by the narrowest of margins. :)

I've implemented an AVX2 Life algorithm which is about 25% faster than the SSE counterpart, by the way, and the assembly code is generated by a Python script instead of being hardcoded into the C++ source. Using a suitable Boolean circuit minimisation algorithm (such as Quine-McCluskey), this could be extended to allow support for arbitrary outer-totalistic rules whilst being marginally faster than even apgnano.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
Apple Bottom
Posts: 1033
Joined: July 27th, 2015, 2:06 pm
Contact:

Re: apgsearch v2.2

Post by Apple Bottom » February 21st, 2016, 7:45 pm

calcyman wrote:Yesterday evening at 19:44, Catagolue celebrated its first anniversary.

At this point it had 50002 billion objects in the b3s23/C1 census. I was hoping to pass the 50 * 10^12 object mark within the first year of operation, and we succeeded by the narrowest of margins. :)

I've implemented an AVX2 Life algorithm which is about 25% faster than the SSE counterpart, by the way, and the assembly code is generated by a Python script instead of being hardcoded into the C++ source. Using a suitable Boolean circuit minimisation algorithm (such as Quine-McCluskey), this could be extended to allow support for arbitrary outer-totalistic rules whilst being marginally faster than even apgnano.
Congratulations, that's awesome news!

Can't wait to try out that new, faster algorithm, either. I take it that's gonna land in the gitlab repo soon?
If you speak, your speech must be better than your silence would have been. — Arabian proverb

Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_

Proud member of the Pattern Raiders!

User avatar
calcyman
Posts: 2198
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Post by calcyman » February 29th, 2016, 12:07 pm

Apple Bottom wrote:Congratulations, that's awesome news!

Can't wait to try out that new, faster algorithm, either. I take it that's gonna land in the gitlab repo soon?
Thanks! Since it's largely rewritten, it makes sense to declare it a new major version (3.0) and place it in a parallel repository as opposed to the existing repository.

It's currently about 34% faster than apgnano for machines with AVX2 support. In particular, on my 36-core Amazon EC2 instance, it takes just over 22 minutes between successive hauls of 74207281 soups, as opposed to 30 minutes for v2.2.

I'm also endowing it with the ability to simulate arbitrary outer-totalistic rules (although the algorithm speed will vary slightly depending on the rule). Basically, I need a method to convert a rule to a Boolean circuit with the following properties:
  • The 5 inputs are the state of the centre cell together with the 4 bits of the neighbour count written in binary (note: the central cell is included in the neighbour count).
  • The 1 output should be the next state of the centre cell.
  • The circuit can consist of AND, OR, XOR and AND-NOT gates.
  • The circuit must have a width <= 7 (although I might be able to increase this to 10 if necessary).
Preferably, we want to use as few logic gates as possible.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
drc
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Post by drc » March 5th, 2016, 12:48 pm

Is there any way to optimise apgsearch? It uses 25% of cpu, and it does 1400/sec at most. I've seen people upload hauls of 40000000 in a matter of minutes?
\100\97\110\105

User avatar
calcyman
Posts: 2198
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Post by calcyman » March 5th, 2016, 2:51 pm

drc wrote:Is there any way to optimise apgsearch? It uses 25% of cpu, and it does 1400/sec at most. I've seen people upload hauls of 40000000 in a matter of minutes?
It is rigorously optimised. This sounds like you're only running it on one core of a quad-core machine, so either run more instances or use the -p flag.

As for uploading 40000000 in a matter of minutes, that's probably on a more powerful machine (my 36-core machine running v3.0 can manage about 200M soups per hour).
What do you do with ill crystallographers? Take them to the mono-clinic!

fluffykitty
Posts: 653
Joined: June 14th, 2014, 5:03 pm
Contact:

Re: apgsearch v2.2

Post by fluffykitty » March 5th, 2016, 2:54 pm

When will v3.0 be released?
I like making rules

User avatar
calcyman
Posts: 2198
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Post by calcyman » March 5th, 2016, 2:56 pm

fluffykitty wrote:When will v3.0 be released?
It's currently in the alpha testing phase, because I don't know how well it supports arbitrary rules. It certainly runs incredibly quickly for B35/S23 and Day&Night, and abysmally slowly for HighLife (due to the natural replicator).

I haven't yet heard back from either Apple Bottom or biggiemac (having PM'd them a link to the new version).
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
Apple Bottom
Posts: 1033
Joined: July 27th, 2015, 2:06 pm
Contact:

Re: apgsearch v2.2

Post by Apple Bottom » March 6th, 2016, 8:12 am

calcyman wrote:
fluffykitty wrote:When will v3.0 be released?
It's currently in the alpha testing phase, because I don't know how well it supports arbitrary rules. It certainly runs incredibly quickly for B35/S23 and Day&Night, and abysmally slowly for HighLife (due to the natural replicator).

I haven't yet heard back from either Apple Bottom or biggiemac (having PM'd them a link to the new version).
Ack, leave it to me to not realize I got a message! (Really, that "1 new message" link is trying pretty hard not to be noticed.) I'll read/reply right away.
If you speak, your speech must be better than your silence would have been. — Arabian proverb

Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_

Proud member of the Pattern Raiders!

User avatar
Alexey_Nigin
Posts: 323
Joined: August 4th, 2014, 12:33 pm
Location: Ann Arbor, MI
Contact:

Re: apgsearch v2.2

Post by Alexey_Nigin » March 7th, 2016, 8:52 am

Something strange is going on here.
There are 10 types of people in the world: those who understand binary and those who don't.

User avatar
calcyman
Posts: 2198
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Post by calcyman » March 7th, 2016, 1:43 pm

Alexey_Nigin wrote:Something strange is going on here.
Yes, that's a problem in v3.0 noticed by Apple Bottom. I've now backed out those hauls.

[Apple Bottom: which other rules have you ran in v3.0?]
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
Apple Bottom
Posts: 1033
Joined: July 27th, 2015, 2:06 pm
Contact:

Re: apgsearch v2.2

Post by Apple Bottom » March 7th, 2016, 1:44 pm

calcyman wrote:[Apple Bottom: which other rules have you ran in v3.0?]
I'm 99.4% sure it was only the ones mentioned in my PM, but let me double-check once I get home.
If you speak, your speech must be better than your silence would have been. — Arabian proverb

Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_

Proud member of the Pattern Raiders!

Post Reply