ConwayLife.com - A community for Conway's Game of Life and related cellular automata
Home  •  LifeWiki  •  Forums  •  Download Golly

apgsearch v2.2

For general discussion about Conway's Game of Life.

Re: apgsearch v2.2

Postby calcyman » February 10th, 2016, 9:28 am

drc wrote:Also, you should probably update to the latest apgsearch, cause you submitted 3 hauls with incorrect names


Ahh, that explains it. I've done a quick hacky Catagolue patch to replace 'v' with 'n' whenever it occurs, based on some discussion by Dave Greene over at the 'hacking apgsearch' thread:

if (c == 118) {
    c = 110;
}


which seems to save Saku's rule:

https://catagolue.appspot.com/census/b34ajs2-a35v/C1/xp17

The Catagolue source has migrated to a remote 36-core Amazon Ubuntu machine, by the way, rather than being developed on my laptop.
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
calcyman
 
Posts: 1949
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Postby calcyman » February 10th, 2016, 9:31 am

Also, capitalisation on /hashsoup pages has also been fixed:

Catagolue wrote:x = 16, y = 16, rule = B34aj/S2-a35v
booobbbbbbbbbobb$
oobboobooobboobo$
bbbbobbbbbbooobb$
boboboboooobbbbb$
bbbbboooboobobob$
bbbooobbbobobooo$
bboobbbobbbbooob$
obbbbbboboooobob$
boobbobooboooooo$
obobooooooobbooo$
oooobbobbobbbboo$
oooobboboboboobo$
oboooobooooboboo$
bobooooobboooobo$
bobboboobooobbob$
obobobbobbobobob!


I *think* this means that non-totalistic rules are now completely supported by Catagolue.
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
calcyman
 
Posts: 1949
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Postby Saka » February 10th, 2016, 9:36 am

calcyman wrote:
drc wrote:
which seems to save Saku's rule:

https://catagolue.appspot.com/census/b34ajs2-a35v/C1/xp17

Who is Saku?
Don't worry, it ever got worse- the first time I went to school, my principal thought my name was SASHA!
If you're the person that uploaded to Sakagolue illegally, please PM me.
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2783
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X

Re: apgsearch v2.2

Postby calcyman » February 10th, 2016, 10:01 am

Erm... why is this called z_LINEAR rather than zz_LINEAR?

https://catagolue.appspot.com/object/z_LINEAR/b2i3678s34678

This has the worrying implication that +0.*i is actually forked from an older (buggier) version of apgsearch instead of the latest version.
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
calcyman
 
Posts: 1949
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Postby A for awesome » February 10th, 2016, 5:36 pm

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

https://catagolue.appspot.com/object/z_LINEAR/b2i3678s34678

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.2i, but it appears I missed something. What is the bug, anyway?
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
A for awesome
 
Posts: 1730
Joined: September 13th, 2014, 5:36 pm
Location: 0x-1

Re: apgsearch v2.2

Postby drc » February 10th, 2016, 6:08 pm

I censused a really long rule, so now the format is off.
This post was brought to you by the letter D, for dishes that Andrew J. Wade won't do. (Also Daniel, which happens to be me.)
Current rule interest: B2ce3-ir4a5y/S2-c3-y
User avatar
drc
 
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Postby 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_LINEAR/b2i3678s34678

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):
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
A for awesome
 
Posts: 1730
Joined: September 13th, 2014, 5:36 pm
Location: 0x-1

Re: apgsearch v2.2

Postby 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.
This post was brought to you by the letter D, for dishes that Andrew J. Wade won't do. (Also Daniel, which happens to be me.)
Current rule interest: B2ce3-ir4a5y/S2-c3-y
User avatar
drc
 
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Postby 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.
David
 
Posts: 212
Joined: November 3rd, 2009, 2:47 am
Location: Daejeon, South Korea

Re: apgsearch v2.2

Postby 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
calcyman
 
Posts: 1949
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Postby 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.
This post was brought to you by the letter D, for dishes that Andrew J. Wade won't do. (Also Daniel, which happens to be me.)
Current rule interest: B2ce3-ir4a5y/S2-c3-y
User avatar
drc
 
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Postby drc » February 11th, 2016, 6:05 pm

Actually, it seemed to be chrome, I switched to chromium and that seemed to work
This post was brought to you by the letter D, for dishes that Andrew J. Wade won't do. (Also Daniel, which happens to be me.)
Current rule interest: B2ce3-ir4a5y/S2-c3-y
User avatar
drc
 
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Postby 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.
David
 
Posts: 212
Joined: November 3rd, 2009, 2:47 am
Location: Daejeon, South Korea

Re: apgsearch v2.2

Postby 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
biggiemac
 
Posts: 503
Joined: September 17th, 2014, 12:21 am
Location: California, USA

Re: apgsearch v2.2

Postby 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!
User avatar
calcyman
 
Posts: 1949
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Postby 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.
David
 
Posts: 212
Joined: November 3rd, 2009, 2:47 am
Location: Daejeon, South Korea

Re: apgsearch v2.2

Postby 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
calcyman
 
Posts: 1949
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Postby 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
This post was brought to you by the letter D, for dishes that Andrew J. Wade won't do. (Also Daniel, which happens to be me.)
Current rule interest: B2ce3-ir4a5y/S2-c3-y
User avatar
drc
 
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Postby drc » February 14th, 2016, 1:13 pm

Apgnano has slowed down from 1400 to 400 in a day. What happened?
This post was brought to you by the letter D, for dishes that Andrew J. Wade won't do. (Also Daniel, which happens to be me.)
Current rule interest: B2ce3-ir4a5y/S2-c3-y
User avatar
drc
 
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Postby 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: 1949
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Postby 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
calcyman
 
Posts: 1949
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Postby 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
Apple Bottom
 
Posts: 1021
Joined: July 27th, 2015, 2:06 pm

Re: apgsearch v2.2

Postby 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
calcyman
 
Posts: 1949
Joined: June 1st, 2009, 4:32 pm

Re: apgsearch v2.2

Postby 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?
This post was brought to you by the letter D, for dishes that Andrew J. Wade won't do. (Also Daniel, which happens to be me.)
Current rule interest: B2ce3-ir4a5y/S2-c3-y
User avatar
drc
 
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm
Location: creating useless things in OCA

Re: apgsearch v2.2

Postby 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!
User avatar
calcyman
 
Posts: 1949
Joined: June 1st, 2009, 4:32 pm

PreviousNext

Return to General Discussion

Who is online

Users browsing this forum: No registered users and 6 guests