Re: apgsearch v5.0
Posted: April 2nd, 2019, 10:02 am
Can mesuthelahs also be classified in terms of the diversity of the output, in terms of how many different objects are recorded in the ash?
Wow. Even with the impressive speed of GPUs it would still cost $25320.38 to overtake C1.wildmyron wrote:which shows that the V100 is the most economical platform within GCE, at a cost of $1.42 / billion soups
Yes, that confused me as well: apparently, the CUDA drivers busy-wait (!!!) for the GPU whenever there's a dependency. https://devtalk.nvidia.com/default/topi ... cuda-code/wildmyron wrote:@calcyman: Any idea why the CUDA search always has one CPU running at 100%? This is independent of GPU used and in addition to the CPU search threads which are processing the interesting soups.
Can you run watch -n 0.1 nvidia-smi whilst apgsearch is running? (It might have something to do with the fact that a K80 card is usually dual-GPU, whereas apgsearch currently only supports one GPU.)wildmyron wrote:I was very surprised with the result from the Tesla K80. It's a slightly older GPU but it's no slouch. Within Google Compute Engine (GCE) it's not possible to attach this GPU to the newer Skylake Xeon processors, but I don't believe this explains the results.
Code: Select all
1) Intel Xeon CPU @ 2.20GHz (Broadwell, AVX2)
CPU search speed: 5000 soups/s/core
2) Intel Xeon CPU @ 2.00GHz (Skylake, AVX-512)
CPU search speed: 8900 soups/s/coreIndeed. Of course, it's an underestimate as to the value of b3s23/C1, since the GPUs are currently slightly cheating by not producing a full census of all objects produced. It would be interesting to see how much they slow down after that code has been added. (For CPUs, this stage consumes about 15% of time on AVX-512, or 10% on AVX2.)Macbi wrote:Wow. Even with the impressive speed of GPUs it would still cost $25320.38 to overtake C1.wildmyron wrote:which shows that the V100 is the most economical platform within GCE, at a cost of $1.42 / billion soups
Well, that is bizarre.calcyman wrote:Yes, that confused me as well: apparently, the CUDA drivers busy-wait (!!!) for the GPU whenever there's a dependency.wildmyron wrote:@calcyman: Any idea why the CUDA search always has one CPU running at 100%? This is independent of GPU used and in addition to the CPU search threads which are processing the interesting soups.
I can't spin up another VM with a GPU at the moment as there's a global quota which I only requested be raised to 1 to allow the tests to be carried out - and I'm currently using that GPU to stay ahead of Alex Greason in the G1 censuscalcyman wrote:Can you run watch -n 0.1 nvidia-smi whilst apgsearch is running? (It might have something to do with the fact that a K80 card is usually dual-GPU, whereas apgsearch currently only supports one GPU.)wildmyron wrote:I was very surprised with the result from the Tesla K80. It's a slightly older GPU but it's no slouch. Within Google Compute Engine (GCE) it's not possible to attach this GPU to the newer Skylake Xeon processors, but I don't believe this explains the results.
I presume that when I provision a 4 vCPU system in GCE that what I actually get is 4 hyperthreaded CPUs on two physical cores, however the true situation is rather opaque to me and I don't think it's something GCE customers have any control over.calcyman wrote:(By the way, heuristically apgsearch running with -p 4 on a 4-core machine is about 3.7 times faster than running -p 0, because a hyperthreaded CPU with two virtual cores isn't quite the same as having two physical cores.)
Checking for 2-periodicity at the end causes the speed to drop from 385k to 300k soups/second, and doesn't increase the number of interesting soups greatly (essentially, it just means the CPU handles soups containing pulsars). I think loop unrolling might be able to decrease the gap between 385k and 300k.I wrote:It's nontrivial to even determine how to implement the object detection on the GPU. I was thinking that it might be best placed in the schedule() kernel, activated whenever the soup is deemed *uninteresting* (as the interesting soups are already fully censused by the CPU).
What's the current status on it?testitemqlstudop wrote:Yes. Am submitting a PR....
What's your Catagolue username?Ch91 wrote:I tried running the pre-compiled version of this (as linked to from https://gitlab.com/apgoucher/apgmera) on my computer, and despite the soup search apparently proceeding normally it doesn't appear that my haul results were ever uploaded to Catagolue. Could I be doing something wrong with it?
Ch91. I tried looking at my user page, but it said I never uploaded any soups despite the precompiled program running without any discernible issues.Ian07 wrote:What's your Catagolue username?Ch91 wrote:I tried running the pre-compiled version of this (as linked to from https://gitlab.com/apgoucher/apgmera) on my computer, and despite the soup search apparently proceeding normally it doesn't appear that my haul results were ever uploaded to Catagolue. Could I be doing something wrong with it?
How did you invoke apgluxe on the command line -- did you include a -k parameter?Ch91 wrote:Ch91. I tried looking at my user page, but it said I never uploaded any soups despite the precompiled program running without any discernible issues.
Code: Select all
./apgluxe --rule b3s12-ae34ceit -n 10000 -k {payosha256key}I used the pre-compiled version linked from Adam Goucher's website, which for your convenience is linked here (https://catagolue.appspot.com/binaries/ ... x86_64.exe), so technically it was never invoked on the command line. I recall entering the suggested values for the haul size and threads used when it initialized.dvgrn wrote:How did you invoke apgluxe on the command line -- did you include a -k parameter?Ch91 wrote:Ch91. I tried looking at my user page, but it said I never uploaded any soups despite the precompiled program running without any discernible issues.
For example, one of my recent invocations was
Code: Select all
./apgluxe --rule b3s12-ae34ceit -n 10000 -k {payosha256key}
Code: Select all
Greetings, this is apgluxe v5.08-ll2.2.12, configured for b3s23/C1.
Lifelib version: ll2.2.12
Compiler version: 8.3.0
Python version: '3.7.3rc1 (default, Mar 13 2019, 11:01:15) [GCC 8.3.0]'
Using seed k_bVZPgBTkBhku
Instruction set AVX2 detected
Running 1000000 soups per haul:
Linear-growth pattern detected: yl384_1_59_7aeb1999980c43b4945fb7fcdb023326
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
b3s23/C1: 300000 soups completed (26766.595 soups/second current, 26766.595 overall).
Rare oscillator detected: xp4_37bkic
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl384_1_59_7aeb1999980c43b4945fb7fcdb023326
Linear-growth pattern detected: yl384_1_59_7aeb1999980c43b4945fb7fcdb023326
b3s23/C1: 600000 soups completed (22977.941 soups/second current, 24726.973 overall).
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl384_1_59_7aeb1999980c43b4945fb7fcdb023326
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
b3s23/C1: 900000 soups completed (21508.460 soups/second current, 23551.578 overall).
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
b3s23/C1: 1000000 soups completed (21422.451 soups/second current, 23319.264 overall).
----------------------------------------------------------------------
1000000 soups completed.
Attempting to contact payosha256.
Payosha256 authentication succeeded.
***********************************************
Code: Select all
Greetings, this is apgluxe v5.08-ll2.2.12, configured for b3s23/C1.
Lifelib version: ll2.2.12
Compiler version: 9.1.0
Python version: '3.7.3rc1 (default, Mar 13 2019, 11:01:15) [GCC 8.3.0]'
Using seed k_qgxx6uiC9FR4
Instruction set AVX2 detected
Running 1000000 soups per haul:
Rare oscillator detected: xp3_695qc8zx33
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Rare oscillator detected: xp8_gk2gb3z11
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
b3s23/C1: 300000 soups completed (26343.519 soups/second current, 26343.519 overall).
Linear-growth pattern detected: yl384_1_59_7aeb1999980c43b4945fb7fcdb023326
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl384_1_59_7aeb1999980c43b4945fb7fcdb023326
Rare oscillator detected: xp4_37bkic
Rare oscillator detected: xp4_37bkic
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
b3s23/C1: 600000 soups completed (26251.313 soups/second current, 26297.335 overall).
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Rare oscillator detected: xp8_gk2gb3z11
Linear-growth pattern detected: yl144_1_16_afb5f3db909e60548f086e22ee3353ac
Linear-growth pattern detected: yl384_1_59_7aeb1999980c43b4945fb7fcdb023326
b3s23/C1: 900000 soups completed (21373.611 soups/second current, 24421.350 overall).
b3s23/C1: 1000000 soups completed (21547.080 soups/second current, 24099.870 overall).
----------------------------------------------------------------------
1000000 soups completed.
Attempting to contact payosha256.
Payosha256 authentication succeeded.
***********************************************
Connection was successful.
New seed: k_jCLsTvFGMMaK; iterations = 1; quitByUser = 0
Terminating...
Code: Select all
Loops: 7374
Tiles in epoch: 420026281
Interesting universes: 2680 out of 1000000
b3s23/G1: 1000000 soups completed (18827.073 soups/second current, 18827.073 overall).
Code: Select all
Line length exceeds upper limit of 2000 bytes.Fixed in version 5.09. (By the way, the bug you reported only happens when single-core searching.)alphazelf wrote:I found a bug with apgsearch 5.08 and it is killing me right now. With version 4.984 you could submit hauls up to a massive 10 billion soups. A select few people did that. In version 5.08 when a haul is completed and has over like 2 billion objects, it just shows this error:
I really want this fixed while also being able to start hauls larger than 10 billion objectsCode: Select all
Line length exceeds upper limit of 2000 bytes.
yeah me i did that three timesA select few people did that.
testitemqlstudop wrote:How difficult would it be to modify apgsearch so that it skips soups that can't be censused in 10 seconds? I'm searching a b2a rule that has soup search speed swings (alliteration not intended) from 1200 soups/second to 0.012 soups/second (no kidding.) The culprit seems to be in yl detection, especially for very high yl periods - this b2a rule lacks replicators.
Alternatively, what would happen if I changed the "maximum pathological attempts" from 5 to something like 2?
testitemqlstudop wrote:Bump.
testitemqlstudop wrote:How difficult would it be to modify apgsearch so that it skips soups that can't be censused in 10 seconds? I'm searching a b2a rule that has soup search speed swings (alliteration not intended) from 1200 soups/second to 0.012 soups/second (no kidding.) The culprit seems to be in yl detection, especially for very high yl periods - this b2a rule lacks replicators.
Alternatively, what would happen if I changed the "maximum pathological attempts" from 5 to something like 2?
YL detection is especially problematic, even in rules like B2ei3aij/S23aijny when all there is is a four-barreled gun.