Catagolue Discussion Thread

For general discussion about Conway's Game of Life.
User avatar
testitemqlstudop
Posts: 1367
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Catagolue Discussion Thread

Post by testitemqlstudop » February 3rd, 2019, 11:25 am

calcyman wrote:
testitemqlstudop wrote:whoops, last-minute updating
:(
I've merged your changes now anyway -- your profiling approach improves it to 4320 on my AVX2 machine! :)

Because the profiling is pretty intrusive, and only suitable for rules where 100000 soups finish relatively quickly, I've made it optional. So to use your profiling acceleration, the invocation is:

./recompile.sh --profile

I've also changed the extension from .O to .op for the profiled objects, because some people (mainly Windows users) have case-insensitive filesystems that would object to having .o and .O coexisting.
Ah, thanks! That's pretty useful for non-Life rules. The extension change is good, too. However, there's one thing - the profiling might enable some rule-specific optimizations behind the scenes. Maybe make an option to lower "-n" from 100K to say, 1K for non-Life "slow" rules? (Well literally every non-b3s23 is slow from my testing, even very similar non-explosive ones like HighLife b36s23, but I don't know what makes it slow)
Thank you very much for these updates! How would you like to be credited in the README?
Sure, but after all, without you there's no apgmera... :D
(I might as well give away my full name: Darren Li, if you want to put it in. Where did the "credits" section even go? It was there the last time I checked the README...)
EDIT: On my AVX-512 machine, it's even better still: soups per second have increased from 6140 to 6584, and the total number of instructions per soup has plummeted from 1080K to 966K:

Code: Select all

$ perf stat -B ./apgluxe -n 1000000 -t 1 -v 0 -s test

Greetings, this is apgluxe v4.86-ll2.1.11, configured for b3s23/C1.

Lifelib version: ll2.1.11
Compiler version: 7.3.0
Python version: '2.7.15rc1 (default, Nov 12 2018, 14:31:15)  [GCC 7.3.0]'

Using seed test
Running 1000000 soups per haul:
Instruction set AVX-512 detected
b3s23/C1: 64401 soups completed (6440.060 soups/second current, 6440.060 overall).
b3s23/C1: 130164 soups completed (6576.199 soups/second current, 6508.121 overall).
b3s23/C1: 196853 soups completed (6667.964 soups/second current, 6561.404 overall).
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Soup test216747 lasts an estimated 740 generations; rerunning...
Soup test216747 actually lasts 637 generations.
b3s23/C1: 261511 soups completed (6465.779 soups/second current, 6537.497 overall).
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
b3s23/C1: 327370 soups completed (6585.898 soups/second current, 6547.175 overall).
b3s23/C1: 393115 soups completed (6573.912 soups/second current, 6551.630 overall).
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
b3s23/C1: 459748 soups completed (6663.297 soups/second current, 6567.580 overall).
b3s23/C1: 525636 soups completed (6588.743 soups/second current, 6570.224 overall).
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
b3s23/C1: 591645 soups completed (6600.703 soups/second current, 6573.610 overall).
Rare oscillator detected: xp8_gk2gb3z11
b3s23/C1: 656918 soups completed (6527.051 soups/second current, 6568.953 overall).
b3s23/C1: 723084 soups completed (6616.541 soups/second current, 6573.278 overall).
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
b3s23/C1: 788364 soups completed (6527.883 soups/second current, 6569.495 overall).
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
b3s23/C1: 855046 soups completed (6667.639 soups/second current, 6577.044 overall).
b3s23/C1: 921159 soups completed (6610.982 soups/second current, 6579.468 overall).
b3s23/C1: 987972 soups completed (6681.267 soups/second current, 6586.253 overall).
b3s23/C1: 1000000 soups completed (6409.840 soups/second current, 6584.073 overall).
----------------------------------------------------------------------
1000000 soups completed.
Attempting to contact payosha256.
testing mode
testing
Connection was successful; starting new search...
----------------------------------------------------------------------
New seed: l_qXruggaVhGbN; iterations = 1; quitByUser = 0
Terminating...

 Performance counter stats for './apgluxe -n 1000000 -t 1 -v 0 -s test':

     151884.435307      task-clock (msec)         #    0.999 CPUs utilized          
               137      context-switches          #    0.001 K/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
           121,755      page-faults               #    0.802 K/sec                  
   525,813,323,844      cycles                    #    3.462 GHz                    
   966,647,102,509      instructions              #    1.84  insn per cycle         
    92,968,439,128      branches                  #  612.100 M/sec                  
     6,130,671,887      branch-misses             #    6.59% of all branches        

     151.971671331 seconds time elapsed
(Without the overhead of perf stat, it's 6592 soups per second.)
Great to see that! I wanted this tested on an AVX-512, too, to see if it had a greater increase. The optimizations work!

The perf report is interesting: the two most expensive functions are runkgens (where it spends 65% of the time) and censusSoup (where it spends 11% of the time). Digging deeper, the next easy performance target seems to be the loop in upattern::totalPopulation() which gets inlined into censusSoup. If I restrict that to only iterate over tiles that have changed, it will be far more cache-friendly and we'll pick up another 3% performance improvement (i.e. 6800 soups/second after the change).
Interesting. Let me try to install and run perf on my system...

Finally, I saw you removed "-Ofast" - it made many of my own programs faster. What was the reason for removing -Ofast? It might have some platform-specific improvements.

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

Re: Catagolue Discussion Thread

Post by calcyman » February 3rd, 2019, 11:43 am

Thanks for the information! I've made a few changes now:
  • Removed the -Ofast flag, because it caused segfaults on Apple Bottom's machine. Serendipitously, the speed *increased* after removing the flag;
  • Changed lifelib's population determination to be more cache-friendly.
Together, these have increased the speed on AVX-512 up to 6738 soups/second. (Other architectures will have seen concomitant improvements, but I do all of my performance testing on an AVX-512 machine because it's more accurate for several reasons.)
testitemqlstudop wrote:Finally, I saw you removed "-Ofast" - it made many of my own programs faster.
It's roughly equivalent to -O3 -ffast-math, and therefore is likely to help if you're doing something floating-point-heavy. Soup searching, however, largely doesn't use floating-point arithmetic. Empirically, -Ofast seems to make very little difference to apgluxe (and it was faster without it).

I'm also in the process of fixing the seed for the profiling run and disabling verifications / uploading to Catagolue. That seems to make an improvement, because it profiles exclusively for soup-searching, and also makes things deterministic.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
testitemqlstudop
Posts: 1367
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Catagolue Discussion Thread

Post by testitemqlstudop » February 3rd, 2019, 11:51 am

Huh, it does make it faster.

And by the way, how did you get perf stat to print out the time spent per function?

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

Re: Catagolue Discussion Thread

Post by calcyman » February 3rd, 2019, 11:55 am

testitemqlstudop wrote:Huh, it does make it faster.

And by the way, how did you get perf stat to print out the time spent per function?

Code: Select all

rm -f perf.data
perf record ./apgluxe <OPTIONS>
perf report
Note that 'perf record' runs noticeably more slowly than 'perf stat' because it's more intensive.

These are the perf statistics I get from the latest commit (the one with deterministic profiling):

Code: Select all

 Performance counter stats for './apgluxe -n 1000000 -t 1 -v 0 -s test':

     148997.145873      task-clock (msec)         #    0.999 CPUs utilized          
               146      context-switches          #    0.001 K/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
           115,772      page-faults               #    0.777 K/sec                  
   515,856,341,258      cycles                    #    3.462 GHz                    
   935,416,642,610      instructions              #    1.81  insn per cycle         
    90,726,834,004      branches                  #  608.917 M/sec                  
     6,294,386,012      branch-misses             #    6.94% of all branches        

     149.120546704 seconds time elapsed
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
testitemqlstudop
Posts: 1367
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Catagolue Discussion Thread

Post by testitemqlstudop » February 3rd, 2019, 12:03 pm

I don't think the deterministic profiling would be useful; the compiler for the 2nd time will hence optimize the program for the seed "l_kEwHfF3ArtPb" and for no verifications. I think best would be to run 10 10K testing hauls, not given a seed; the compiler would realize the seeds are random. Did you get a speed improvement with deterministic profiling?

EDIT: Also, during multithreading, I see that not all 4 of my CPUs are utilized, even though the htop CPU usage reports 399.9% (100% x 4 virtual cores). (No deterministic profiling)

Code: Select all

 Performance counter stats for './apgluxe -n 1000000 -k ******** -p 4 -i 1 -s speed2 -t':

     331184.654054      task-clock (msec)         #    3.803 CPUs utilized          
            17,979      context-switches          #    0.054 K/sec                  
                19      cpu-migrations            #    0.000 K/sec                  
           135,139      page-faults               #    0.408 K/sec                  
 1,222,267,093,479      cycles                    #    3.691 GHz                    
 1,539,406,791,116      instructions              #    1.26  insn per cycle         
   122,104,854,099      branches                  #  368.691 M/sec                  
     8,574,190,570      branch-misses             #    7.02% of all branches        

      87.094492415 seconds time elapsed

     329.394145000 seconds user
       1.803573000 seconds sys

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

Re: Catagolue Discussion Thread

Post by calcyman » February 3rd, 2019, 12:35 pm

testitemqlstudop wrote:I don't think the deterministic profiling would be useful; the compiler for the 2nd time will hence optimize the program for the seed "l_kEwHfF3ArtPb" and for no verifications. I think best would be to run 10 10K testing hauls, not given a seed; the compiler would realize the seeds are random. Did you get a speed improvement with deterministic profiling?
I get a significant one, yes. There's qualitatively no difference between running 10 hauls of 10k soups versus 1 haul of 100k soups, because individual soups are independent (the SHA-256 obliterates any similarities between l_kEwHfF3ArtPb1 and l_kEwHfF3ArtPb2, for instance).

The advantage of disabling peripheral activities such as verification and uploading is that it detracts from what we actually want to optimise (soup-searching speed). Typically people upload hauls of 10^7 soups or more, so the proportion of time spent verifying/uploading will be 100x greater in the profiling run (as opposed to reality) if they're enabled.
EDIT: Also, during multithreading, I see that not all 4 of my CPUs are utilized, even though the htop CPU usage reports 399.9% (100% x 4 virtual cores). (No deterministic profiling)

Code: Select all

 Performance counter stats for './apgluxe -n 1000000 -k ******** -p 4 -i 1 -s speed2 -t':

     331184.654054      task-clock (msec)         #    3.803 CPUs utilized          
            17,979      context-switches          #    0.054 K/sec                  
                19      cpu-migrations            #    0.000 K/sec                  
           135,139      page-faults               #    0.408 K/sec                  
 1,222,267,093,479      cycles                    #    3.691 GHz                    
 1,539,406,791,116      instructions              #    1.26  insn per cycle         
   122,104,854,099      branches                  #  368.691 M/sec                  
     8,574,190,570      branch-misses             #    7.02% of all branches        

      87.094492415 seconds time elapsed

     329.394145000 seconds user
       1.803573000 seconds sys
That's possibly because one of the threads finishes before the others. (That's an artifact of the way I'm parallelising, where I split the work equally at the start instead of having a concurrent queue of tasks. As the haul size tends to infinity, the proportion of idle time tends to zero, so it's not too much of a concern.)

Also, it's probably better to perf stat the single-threaded version; I'm seeing an abnormally low instructions per cycle count in your statistics. Do you have a 2-physical-core machine with hyperthreading as opposed to a 4-physical-core machine?

In other news, I've produced a perf report after the upattern modifications, and the censusSoup() time has dropped from 11% to 8%, completely in line with the 3% overall improvement I predicted based on the previous profiling. The top of the report is:

Code: Select all

Samples: 185K of event 'cycles', Event count (approx.): 112408225427
Overhead  Command  Shared Object        Symbol                                                                                                       ◆
  68.82%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE8runkgensEiim.constprop.26                              ▒
   8.00%  apgluxe  apgluxe              [.] _ZN12SoupSearcher10censusSoupENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_RN3apg15base_classif▒
   1.96%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE15updateBoundary1EPS2_                                  ▒
   1.89%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE15updateBoundary8EPS2_                                  ▒
   1.32%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE7advanceEiim.constprop.25                               ▒
   1.15%  apgluxe  apgluxe              [.] _ZN3apg14indirected_mapImNS_5VTileILi44ELi2EEEjEixEm                                                     ▒
   0.96%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE15updateBoundary0EPS2_                                  ▒
   0.94%  apgluxe  libc-2.27.so         [.] cfree                                                                                                    ▒
   0.87%  apgluxe  libc-2.27.so         [.] malloc                                                                                                   ▒
   0.49%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE16updateBoundary12EPS2_                                 ▒
   0.46%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE15updateBoundary3EPS2_                                  ▒
   0.45%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE16updateBoundary33EPS2_                                 ▒
   0.43%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE16updateBoundary24EPS2_                                 ▒
   0.43%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE16updateBoundary32EPS2_                                 ▒
   0.41%  apgluxe  apgluxe              [.] _ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEExSt4lessIS5_ESaISt4pairIKS5_xEEEixERS9_    ▒
   0.40%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE16updateBoundary16EPS2_                                 ▒
   0.39%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE15updateBoundary2EPS2_                                  ▒
   0.38%  apgluxe  apgluxe              [.] _Z17classifyAperiodicB5cxx11N3apg11basepatternIjEE                                                       ▒
   0.34%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE15updateBoundary4EPS2_                                  ▒
   0.34%  apgluxe  libc-2.27.so         [.] 0x000000000018ef2d                                                                                       ▒
   0.31%  apgluxe  apgluxe              [.] _ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS5_SaIS5_EESt4lessIS5_ESaISt4pair▒
   0.30%  apgluxe  libstdc++.so.6.0.25  [.] _Znwm                                                                                                    ▒
   0.28%  apgluxe  libstdc++.so.6.0.25  [.] _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_                                        ▒
   0.24%  apgluxe  apgluxe              [.] _ZN6SHA2569transformEPKhj                                                                                ▒
   0.22%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE15updateBoundary9EPS2_                                  ▒
   0.19%  apgluxe  libstdc++.so.6.0.25  [.] _ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base                                                          ▒
   0.18%  apgluxe  apgluxe              [.] _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag.i▒
   0.18%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE13insertPatternERSt6vectorINS_8bitworldESaIS5_EE        ▒
   0.18%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE16updateBoundary14EPS2_                                 ▒
   0.17%  apgluxe  apgluxe              [.] _ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_              ▒
   0.16%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE16updateBoundary48EPS2_                                 ▒
   0.16%  apgluxe  apgluxe              [.] _ZN3apg9hypertreeIjLi4ENS_8lifemetaIjEENS_9nicearrayImLi8EEES2_E12make_nonleafEjNS3_IjLi4EEE             ▒
   0.13%  apgluxe  apgluxe              [.] _ZNSt8__detail9_Map_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS6_St6vectorIS6_SaI▒
   0.13%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE15updateBoundary7EPS2_                                  ▒
   0.13%  apgluxe  apgluxe              [.] _ZN3apg8upatternINS_5VTileILi44ELi2EEELi28ELi44EE16updateBoundary56EPS2_
So close to 70% of the time is spent in the most heavily-optimised part of the code.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
testitemqlstudop
Posts: 1367
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Catagolue Discussion Thread

Post by testitemqlstudop » February 3rd, 2019, 1:06 pm

calcyman wrote:
testitemqlstudop wrote:I don't think the deterministic profiling would be useful; the compiler for the 2nd time will hence optimize the program for the seed "l_kEwHfF3ArtPb" and for no verifications. I think best would be to run 10 10K testing hauls, not given a seed; the compiler would realize the seeds are random. Did you get a speed improvement with deterministic profiling?
I get a significant one, yes. There's qualitatively no difference between running 10 hauls of 10k soups versus 1 haul of 100k soups, because individual soups are independent (the SHA-256 obliterates any similarities between l_kEwHfF3ArtPb1 and l_kEwHfF3ArtPb2, for instance).
Ohhh, how did I miss that? :oops:

The advantage of disabling peripheral activities such as verification and uploading is that it detracts from what we actually want to optimise (soup-searching speed). Typically people upload hauls of 10^7 soups or more, so the proportion of time spent verifying/uploading will be 100x greater in the profiling run (as opposed to reality) if they're enabled.
Yeah, I guess so.

To say something productive, using the optimized version, I contributed roughly 3G more objects than yesterday.
If everyone else uses this ~20% optimization, we can expect about +120G objects/day.
*cough cough @rliston cough cough*

EDIT: Can I "import" some hauls from my old account ("wtnmmo@gmail.com") to my new account (testitemqlstudop)?

User avatar
muzik
Posts: 5648
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Catagolue Discussion Thread

Post by muzik » February 3rd, 2019, 5:47 pm

calcyman wrote:
muzik wrote:Can the Generations aliases from LifeViewer be added to the list of rule names on Catagolue? I would commit them myself but I've already got a merge request for other rules and I don't know if I can have multiple merge requests for the same file at the same time without them overwriting each other.
Yes, and you can also commit to an existing merge request (and it will update).
Did I do it right?

User avatar
testitemqlstudop
Posts: 1367
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Catagolue Discussion Thread

Post by testitemqlstudop » February 6th, 2019, 1:22 pm

Why this haul red (invalid):

https://catagolue.appspot.com/haul/b3s2 ... 50e340d8d5

using most recent apgluxe

User avatar
testitemqlstudop
Posts: 1367
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Catagolue Discussion Thread

Post by testitemqlstudop » February 6th, 2019, 4:40 pm

Heh, the unverified hauls were getting backlogged, so I used "#anon" to empty the entire backlog:

Code: Select all

dandan@Lenovo-H3060:~/Coding/apgmera$ ./apgluxe -v 1000                                                                                                                            
                                                                                                                                                                                   
Greetings, this is apgluxe v4.92-ll2.1.15, configured for b3s23/C1.                                                                                                                
                                                                                                                                                                                   
Lifelib version: ll2.1.15                                                                                                                                                          
Compiler version: 8.2.0                                                                                                                                                            
Python version: '2.7.15+ (default, Oct  2 2018, 22:12:08)  [GCC 8.2.0]'                                                                                                            
                                                                                                                                                                                   
Peer-reviewing hauls:                                                                                                                                                              
                                                                                                                                                                                   
Instruction set AVX2 detected                                                                                                                                                      
Rare oscillator detected: xp8_g3jgz1ut                                                                                                                                             
Rare oscillator detected: xp8_g3jgz1ut                                                                                                                                             
Rare oscillator detected: xp8_g3jgz1ut                                                                                                                                             
Rare oscillator detected: xp3_695qc8zx33                                                                                                                                           
Rare oscillator detected: xp3_695qc8zx33                                                                                                                                           
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871                                                                                                                              
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871                                                                                                                              
Rare oscillator detected: xp6_ccb7w66z066                                                                                                                                          
Rare oscillator detected: xp6_ccb7w66z066                                                                                                                                          
Rare oscillator detected: xp4_ssj3744zw3                                                                                                                                           
Rare oscillator detected: xp5_idiidiz01w1                                                                                                                                          
[***********************************************]                                                                                                                                  
Rare oscillator detected: xp30_w33z8kqrqk8zzzw33                                                                                                                                   
Rare oscillator detected: xp30_w33z8kqrqk8zzzw33                                                                                                                                   
Rare oscillator detected: xp14_j9d0d9j                                                                                                                                             
Soup l_htpiQjHB4D7p7677229 lasts an estimated 26800 generations; rerunning...                                                                                                      
Soup l_htpiQjHB4D7p7677229 actually lasts 3177 generations.                                                                                                                        
Rare oscillator detected: xp3_695qc8zx33                                                                                                                                           
Rare oscillator detected: xp4_ssj3744zw3                                                                                                                                           
Rare oscillator detected: xp8_g3jgz1ut                                                                                                                                             
[***********************************************]                                                                                                                                  
Rare oscillator detected: xp3_695qc8zx33                                                                                                                                           
Rare oscillator detected: xp3_695qc8zx33                                                                                                                                           
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871                                                                                                                              
Rare oscillator detected: xp4_ssj3744zw3                                                                                                                                           
[***********************************************]                                                                                                                                  
Rare oscillator detected: xp8_g3jgz1ut                                                                                                                                             
Rare oscillator detected: xp8_g3jgz1ut                                                                                                                                             
Rare oscillator detected: xp3_695qc8zx33                                                                                                                                           
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871                                                                                                                              
Rare oscillator detected: xp4_ssj3744zw3                                                                                                                                           
Rare oscillator detected: xp5_idiidiz01w1                                                                                                                                          
[***********************************************]                                                                                                                                  
Rare oscillator detected: xp4_ssj3744zw3                                                                                                                                           
Rare oscillator detected: xp4_ssj3744zw3                                                                                                                                           
Rare oscillator detected: xp4_ssj3744zw3                                                                                                                                           
Rare oscillator detected: xp3_695qc8zx33                                                                                                                                           
Rare oscillator detected: xp5_idiidiz01w1                                                                                                                                          
Rare oscillator detected: xp6_ccb7w66z066                                                                                                                                          
Rare oscillator detected: xp8_g3jgz1ut                                                                                                                                             
[***********************************************]                                                                                                                                  
Rare oscillator detected: xp4_ssj3744zw3                                                                                                                                           
Rare oscillator detected: xp4_ssj3744zw3                                                                                                                                           
Rare oscillator detected: xp3_025qzrq221                                                                                                                                           
Rare oscillator detected: xp3_695qc8zx33                                                                                                                                           
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp14_j9d0d9j
Soup l_iqdRngvNS4k45626877 lasts an estimated 26800 generations; rerunning...
Soup l_iqdRngvNS4k45626877 actually lasts 2090 generations.
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp5_idiidiz01w1
Rare oscillator detected: xp6_ccb7w66z066
[***********************************************]
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp30_w33z8kqrqk8zzzw33
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871
Rare oscillator detected: xp6_ccb7w66z066
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp14_j9d0d9j
Soup l_cpevJH97eRbf6104560 lasts an estimated 26680 generations; rerunning...
Soup l_cpevJH97eRbf6104560 actually lasts 2821 generations.
Rare oscillator detected: xp30_w33z8kqrqk8zzzw33
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp5_idiidiz01w1
[***********************************************]
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp5_idiidiz01w1
Rare oscillator detected: xp5_idiidiz01w1
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871
[***********************************************]
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp5_idiidiz01w1
Rare oscillator detected: xp5_idiidiz01w1
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp8_g3jgz1ut
Soup l_rFDg4TQcNNnd13888219 lasts an estimated 24700 generations; rerunning...
Soup l_rFDg4TQcNNnd13888219 actually lasts 5608 generations.
[***********************************************]
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Soup l_BNA5ZhA8NfcG18959042 lasts an estimated 24760 generations; rerunning...
Soup l_BNA5ZhA8NfcG18959042 actually lasts 6281 generations.
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp30_w33z8kqrqk8zzzw33
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp3_695qc8zx33
[***********************************************]
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp5_idiidiz01w1
Rare oscillator detected: xp6_ccb7w66z066
Rare oscillator detected: xp8_wgovnz234z33
[***********************************************]
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp5_3pmwmp3zx11
Rare oscillator detected: xp5_idiidiz01w1
[***********************************************]
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp3_4hh186z07
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp5_idiidiz01w1
[***********************************************]
Rare oscillator detected: xp30_w33z8kqrqk8zzzw33
Rare oscillator detected: xp3_025qz32qq1
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_wgovnz234z33
[***********************************************]
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp6_ccb7w66z066
[***********************************************]
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871
Rare oscillator detected: xp4_8eh5e0e5he8z178a707a871
Rare oscillator detected: xp8_g3jgz1ut
Soup l_i5ELZQ7rgjf911761146 lasts an estimated 24670 generations; rerunning...
Soup l_i5ELZQ7rgjf911761146 actually lasts 3962 generations.
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp14_j9d0d9j
Soup l_i5ELZQ7rgjf93362686 lasts an estimated 26740 generations; rerunning...
Soup l_i5ELZQ7rgjf93362686 actually lasts 588 generations.
[***********************************************]
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp4_ssj3744zw3
[***********************************************]
Rare oscillator detected: xp30_w33z8kqrqk8zzzw33
Rare oscillator detected: xp30_w33z8kqrqk8zzzw33
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp4_ssj3744zw3
[***********************************************]
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
[***********************************************]
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp5_idiidiz01w1
Rare oscillator detected: xp5_idiidiz01w1
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp14_j9d0d9j
Soup l_PHWyzNsBUCL237191172 lasts an estimated 26680 generations; rerunning...
Soup l_PHWyzNsBUCL237191172 actually lasts 936 generations.
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp5_idiidiz01w1
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp30_w33z8kqrqk8zzzw33
Rare oscillator detected: xp3_o4o0uh224a4z01
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp30_w33z8kqrqk8zzzw33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp4_ssj3744zw3
[***********************************************]
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp8_g3jgz1ut
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp3_025qzrq221
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp4_ssj3744zw3
[***********************************************]
Rare oscillator detected: xp30_w33z8kqrqk8zzzw33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp3_695qc8zx33
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp4_ssj3744zw3
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp30_w33z8kqrqk8zzzx33
Rare oscillator detected: xp14_j9d0d9j
Soup l_JjyBkPDZtAn213370528 lasts an estimated 26800 generations; rerunning...
Soup l_JjyBkPDZtAn213370528 actually lasts 1113 generations.
Rare oscillator detected: xp30_w33z8kqrqk8zzzw33
Rare oscillator detected: xp3_025qzrq221
Rare oscillator detected: xp3_4a422hu0696
Rare oscillator detected: xp5_idiidiz01w1
Rare oscillator detected: xp8_g3jgz1ut
[***********************************************]
No more hauls to verify.
No more hauls to verify.
^C
pro tip: if catagolue's getting backlogged you can help by running "./apgluxe -v 1000"

User avatar
77topaz
Posts: 1496
Joined: January 12th, 2018, 9:19 pm

Re: Catagolue Discussion Thread

Post by 77topaz » February 6th, 2019, 5:15 pm

testitemqlstudop wrote:pro tip: if catagolue's getting backlogged you can help by running "./apgluxe -v 1000"
Oh, nice. I didn't know that option existed, so on the few occasions I'd tried to clear a backlog earlier, I'd had to go and edit the recompilation script to change the default number of hauls verified.

User avatar
Hdjensofjfnen
Posts: 1743
Joined: March 15th, 2016, 6:41 pm
Location: re^jθ

Re: Catagolue Discussion Thread

Post by Hdjensofjfnen » February 6th, 2019, 10:46 pm

When I finally discover something it turns up in a red haul. :(
https://catagolue.appspot.com/haul/b3s2 ... b6fdf99a43
Object is xs27_j9egmiczc97066, which would have been the seventeenth.
EDIT: Soup, which looks legit to me:

Code: Select all

x = 16, y = 16, rule = B3/S23
obo3b4o2bo2bo$o3b3o3bobob2o$2bobobo3bob4o$3b2o5bo2b3o$2bo2bobobobo$2bo
b2obob2ob3o$2obobo2bo2bob3o$b2ob4o3b2o$7o2b2o2bo$3b2obobo5b2o$4b6obob
2o$o2b3o4b2obo$b2o3b2o3bo2b2o$obobobo2bo2bobo$bo6bobo2b3o$b2ob2o2bo3b
2obo!

Code: Select all

x = 5, y = 9, rule = B3-jqr/S01c2-in3
3bo$4bo$o2bo$2o2$2o$o2bo$4bo$3bo!

Code: Select all

x = 7, y = 5, rule = B3/S2-i3-y4i
4b3o$6bo$o3b3o$2o$bo!

User avatar
77topaz
Posts: 1496
Joined: January 12th, 2018, 9:19 pm

Re: Catagolue Discussion Thread

Post by 77topaz » February 7th, 2019, 2:58 am

Catagolue only credits still life discoveries if the still life has at least 30 cells, so it wouldn't have appeared on your userpage anyway.

User avatar
testitemqlstudop
Posts: 1367
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Catagolue Discussion Thread

Post by testitemqlstudop » February 7th, 2019, 4:13 pm

Calcyman returns!
screenshot.jpg
screenshot.jpg (26.04 KiB) Viewed 10914 times

User avatar
muzik
Posts: 5648
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Catagolue Discussion Thread

Post by muzik » February 8th, 2019, 5:03 am

Can a summary of each rulespace be added underneath the title on each rules page?

User avatar
Hdjensofjfnen
Posts: 1743
Joined: March 15th, 2016, 6:41 pm
Location: re^jθ

Re: Catagolue Discussion Thread

Post by Hdjensofjfnen » February 20th, 2019, 12:12 am

77topaz wrote:Catagolue only credits still life discoveries if the still life has at least 30 cells, so it wouldn't have appeared on your userpage anyway.
Uh... that's not true anymore?
https://catagolue.appspot.com/user/Hdje ... iscoveries
EDIT: And that makes two blue hauls in a row. Hooray for me. :P

Code: Select all

x = 5, y = 9, rule = B3-jqr/S01c2-in3
3bo$4bo$o2bo$2o2$2o$o2bo$4bo$3bo!

Code: Select all

x = 7, y = 5, rule = B3/S2-i3-y4i
4b3o$6bo$o3b3o$2o$bo!

User avatar
77topaz
Posts: 1496
Joined: January 12th, 2018, 9:19 pm

Re: Catagolue Discussion Thread

Post by 77topaz » February 20th, 2019, 5:21 am

Odd. I'm not sure precisely what the criterion is for sub-30 cell still lifes - it might be as simple as someone calling /attribute on them before the haul is deleted - /attribute is what causes a haul to "turn blue". That's probably it, because for 30+ cell still lifes and oscillators, such calls are done automatically by a script.

User avatar
Hdjensofjfnen
Posts: 1743
Joined: March 15th, 2016, 6:41 pm
Location: re^jθ

Re: Catagolue Discussion Thread

Post by Hdjensofjfnen » February 20th, 2019, 1:41 pm

77topaz wrote:Odd. I'm not sure precisely what the criterion is for sub-30 cell still lifes - it might be as simple as someone calling /attribute on them before the haul is deleted - /attribute is what causes a haul to "turn blue". That's probably it, because for 30+ cell still lifes and oscillators, such calls are done automatically by a script.
Oh, yeah, I did call "attribute" on one of my "discoveries", and it turned blue:

Code: Select all

x = 16, y = 16, rule = B3/S23
obbbbbbooobobobo$
boobbobooobbbbbo$
boobbobbbbbboobo$
bbbbbobobboboobb$
ooboboobooobbbbb$
bobobboobbbboooo$
boboooboobbobbbb$
oboobboboooooboo$
boobobooboobbobo$
oobbbooobbbboboo$
bbbooobobbbbboob$
obboobboboboooob$
oboooboooboboooo$
bbobboobbbbobbbb$
boooobbboooobbbb$
obobobbobbboboob!
EDIT: Maybe Adam can fix this by automatically hitting up "attribute" for each and every SL discovery, and limit SL "discoveries" to the first 5 occurrences?

Code: Select all

x = 5, y = 9, rule = B3-jqr/S01c2-in3
3bo$4bo$o2bo$2o2$2o$o2bo$4bo$3bo!

Code: Select all

x = 7, y = 5, rule = B3/S2-i3-y4i
4b3o$6bo$o3b3o$2o$bo!

User avatar
Ian07
Moderator
Posts: 891
Joined: September 22nd, 2018, 8:48 am
Location: New Jersey, US

Re: Catagolue Discussion Thread

Post by Ian07 » February 24th, 2019, 9:02 am

How do I view comments on object pages beyond the most recent 20 that are displayed? For example, loafer has been overrun with spam comments and I'd like to be able to see the others.

User avatar
Moosey
Posts: 4306
Joined: January 27th, 2019, 5:54 pm
Location: here
Contact:

Re: Catagolue Discussion Thread

Post by Moosey » February 25th, 2019, 1:59 pm

When will b3-ck4e5k6is2-in35i6c8 (fakepishiplife) gain its name on Catagolue?

EDIT:
@Ian07 (vvv):
I don’t.
Last edited by Moosey on February 25th, 2019, 6:27 pm, edited 1 time in total.
not active here but active on discord

User avatar
Ian07
Moderator
Posts: 891
Joined: September 22nd, 2018, 8:48 am
Location: New Jersey, US

Re: Catagolue Discussion Thread

Post by Ian07 » February 25th, 2019, 3:59 pm

Moosey wrote:When will b3-ck4e5k6is2-in35i6c8 (fakepishiplife) gain its name on Catagolue?
If you have a Gitlab account you can submit a merge request yourself. (click Edit, add the rule, and submit so Adam can approve it)

wildmyron
Posts: 1544
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: Catagolue Discussion Thread

Post by wildmyron » February 28th, 2019, 3:30 am

Anonymous seems to be spamming http://catagolue.appspot.com/haul/b3s23/C1 with 10000 soup hauls using an old, hacked Python version of apgsearch. I'm not sure what the point of doing that might be, or if it could become a problem for Catagolue. I suppose it's a good thing that the v4 version isn't being used to do the same thing.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

User avatar
Hdjensofjfnen
Posts: 1743
Joined: March 15th, 2016, 6:41 pm
Location: re^jθ

Re: Catagolue Discussion Thread

Post by Hdjensofjfnen » February 28th, 2019, 9:58 pm

testitemqlstudop wrote:Calcyman returns!
He's gone now. :cry:
EDIT: Yes! I finally found it!
http://catagolue.appspot.com/object/xs16_2ego3qic/b3s23

Code: Select all

x = 5, y = 9, rule = B3-jqr/S01c2-in3
3bo$4bo$o2bo$2o2$2o$o2bo$4bo$3bo!

Code: Select all

x = 7, y = 5, rule = B3/S2-i3-y4i
4b3o$6bo$o3b3o$2o$bo!

User avatar
Moosey
Posts: 4306
Joined: January 27th, 2019, 5:54 pm
Location: here
Contact:

Re: Catagolue Discussion Thread

Post by Moosey » March 1st, 2019, 8:18 pm

Can somebody with a gitlab account merge fakepishiplife to b3-ck4e5k6is2-in35i6c8?

Also creperie to b2ikn3aijns23-ckqy?
Sorry for the requests.
not active here but active on discord

User avatar
testitemqlstudop
Posts: 1367
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Catagolue Discussion Thread

Post by testitemqlstudop » March 1st, 2019, 8:42 pm

now for some drama:
screen2.jpg
screen2.jpg (13.7 KiB) Viewed 10223 times

Post Reply