Page 12 of 14

Re: apgsearch v2.2

Posted: February 10th, 2016, 9:28 am
by calcyman
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:

Code: Select all

if (c == 118) {
    c = 110;
}
which seems to save Saku's rule:

https://catagolue.appspot.com/census/b3 ... 5v/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.

Re: apgsearch v2.2

Posted: February 10th, 2016, 9:31 am
by calcyman
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.

Re: apgsearch v2.2

Posted: February 10th, 2016, 9:36 am
by Saka
calcyman wrote:
drc wrote:
which seems to save Saku's rule:

https://catagolue.appspot.com/census/b3 ... 5v/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!

Re: apgsearch v2.2

Posted: February 10th, 2016, 10:01 am
by calcyman
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.

Re: apgsearch v2.2

Posted: February 10th, 2016, 5:36 pm
by praosylen
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.2i, but it appears I missed something. What is the bug, anyway?

Re: apgsearch v2.2

Posted: February 10th, 2016, 6:08 pm
by drc
I censused a really long rule, so now the format is off.

Re: apgsearch v2.2

Posted: February 10th, 2016, 6:29 pm
by praosylen
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"

Re: apgsearch v2.2

Posted: February 10th, 2016, 7:08 pm
by drc
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.

Re: apgsearch v2.2

Posted: February 11th, 2016, 4:44 am
by David
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?

Re: apgsearch v2.2

Posted: February 11th, 2016, 7:41 am
by calcyman
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.)

Re: apgsearch v2.2

Posted: February 11th, 2016, 4:32 pm
by drc
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.

Re: apgsearch v2.2

Posted: February 11th, 2016, 6:05 pm
by drc
Actually, it seemed to be chrome, I switched to chromium and that seemed to work

Re: apgsearch v2.2

Posted: February 12th, 2016, 10:04 am
by David
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?

Re: apgsearch v2.2

Posted: February 12th, 2016, 12:39 pm
by biggiemac
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.

Re: apgsearch v2.2

Posted: February 12th, 2016, 2:46 pm
by calcyman
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.

Re: apgsearch v2.2

Posted: February 12th, 2016, 6:38 pm
by David
apgnano doesn't work when I enter my payosha256 key.

Re: apgsearch v2.2

Posted: February 12th, 2016, 7:15 pm
by calcyman
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.

Re: apgsearch v2.2

Posted: February 13th, 2016, 1:39 pm
by drc
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

Re: apgsearch v2.2

Posted: February 14th, 2016, 1:13 pm
by drc
Apgnano has slowed down from 1400 to 400 in a day. What happened?

Re: apgsearch v2.2

Posted: February 14th, 2016, 2:05 pm
by calcyman
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.)

Re: apgsearch v2.2

Posted: February 21st, 2016, 11:46 am
by calcyman
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.

Re: apgsearch v2.2

Posted: February 21st, 2016, 7:45 pm
by Apple Bottom
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?

Re: apgsearch v2.2

Posted: February 29th, 2016, 12:07 pm
by calcyman
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.

Re: apgsearch v2.2

Posted: March 5th, 2016, 12:48 pm
by drc
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?

Re: apgsearch v2.2

Posted: March 5th, 2016, 2:51 pm
by calcyman
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).