rieMiner - Solo + pooled Riecoin mining

Current existing mining softwares
Post Reply
Rockhawk
Posts: 48
Joined: 29 Oct 2018, 21:12

Re: rieMiner - Solo + pooled Riecoin mining

Post by Rockhawk » 03 Dec 2018, 13:09

tgspring wrote:
03 Dec 2018, 02:43
@Pttn
Are there any wrong with your 0.9RC3 when make using MSYS2?
A clean checkout of 0.9RC3 builds fine for me on MYS2, what problem do you have?

Rockhawk
Posts: 48
Joined: 29 Oct 2018, 21:12

Re: rieMiner - Solo + pooled Riecoin mining

Post by Rockhawk » 03 Dec 2018, 16:52

Rockhawk wrote:
03 Dec 2018, 00:55
I've only tested to 2^33 and didn't notice CPU blips, although I might have missed them. Do you have enough sieve workers to keep the queue full?
It would be a good idea to factor the sieve max into the default number of workers, as it would be good if the user didn't have to configure too many parameters to get good performance. I'll have a look at testing different sieve maxes and numbers of threads this evening and try to come up with a better default.

Pttn
Posts: 143
Joined: 24 Aug 2018, 13:37

Re: rieMiner - Solo + pooled Riecoin mining

Post by Pttn » 03 Dec 2018, 17:01

Rockhawk wrote:
03 Dec 2018, 13:09
tgspring wrote:
03 Dec 2018, 02:43
@Pttn
Are there any wrong with your 0.9RC3 when make using MSYS2?
A clean checkout of 0.9RC3 builds fine for me on MYS2, what problem do you have?
I do not have any issue either with MSYS.
Rockhawk wrote:
03 Dec 2018, 00:55
I've only tested to 2^33 and didn't notice CPU blips, although I might have missed them. Do you have enough sieve workers to keep the queue full? Or do you just mean when the block switches when doing actual mining?
I did not consider to increase the number of Sieve Workers but now it seems Ok and better. Actually, I did it once earlier and it decreased the performance, so I overlooked this solution. Not sure how I got worse performance before as it is better now with Sieve 2^33, 4 Sieve Workers instead of 3, and current Difficulty.
Rockhawk wrote:
03 Dec 2018, 00:55
The -L/usr/local/lib was committed by mistake but it might actually hehlp other people too. I have a native compiled version of gmp in /usr/local/lib which speeds things up a bit compared to the default Ubuntu one.
I see. I think that I will remove it anyway later.
Rockhawk wrote:
03 Dec 2018, 00:55
Nearly 20 years ago I wrote "APSieve" which is basically a generalised version of the sieving part of the riecoin miner. I was surprised to see that some relatively recent k-tuplet records still credit it, including the top 6-tuplet! I don't think I even have the source for that any more, and I'm certain that the code in rieMiner is faster. That said, being able to sieve more deeply before testing would be necessary to be competitive for a record. This can be done with less memory when you only have one "block" - rieMiner is structured a bit differently because it needs to start testing primes within seconds not days or weeks!

I actually found the riecoin project from the k-tuplet page as I was thinking of developing a new sieve program!
Thank you for the background, no wonder why you know so much about this now, 20 years of experience in finding prime tuples, impressive!
Nice that you think that rieMiner is fairly efficient. If doable, it could be very interesting to implement later this deep sieving (and anything else needed) to add a neat fourth mode along with GetBlockTemplate/Stratum/Benchmark and have a reference software that should be used to beat records.
This would definitively help exposing the project, attracting all competitors, you came here because of the records list after all.
Rockhawk wrote:
03 Dec 2018, 00:55
The ISPC branch gives AVX2 and AVX512 versions of the primality test, these do 16 tests at a time using a SPMD (single program multiple data) approach. The test is written in ISPC which is a C-like language for creating SPMD programs for x64, much like OpenCL or CUDA is for the GPU. Unfortuately you'll need the trunk version of ISPC and LLVM to compile the ispc code, as there was a bug that significantly affected performance that was fixed after I reported it a couple of weeks ago. I'm committing the generated assembler so that you don't have to install ISPC to build the miner, and also I've made a couple of hand edits to the output to improve the performance of the innermost loop.

The AVX2 version is a little faster than the standard GMP implementation, and the AVX512 one is significantly faster - although obviously AVX512 isn't available on most CPUs yet. I've been testing on an EC2 instance which only costs a few cents an hour which is fine for development. I haven't tested AVX512 on Windows, but it should work(!)

I also added an AVX2 version of the remainder calculation to that branch. The branch is close to ready but I'd prefer to do some more testing before merge. I think it could be good to go by Wednesday depending how busy I am this week.
Very nice. As I cannot test AVX512 at all and it is still not mainstream, I would release the stable version with AVX512 labelled as experimental.

I encountered again a Segmentation Fault, this time not after the miner restarted. Too bad that I forgot to run in Gdb, but now it should mean that my fix is not the problem. I hope that I will catch it this time to get a full stack trace. It would be really annoying to have the miner randomly stop after some hours or days. Maybe you might let some threads mining in background as well to possibly catch yourself this bug.
rieMiner - Riecoin solo + pooled miner
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!

Pttn
Posts: 143
Joined: 24 Aug 2018, 13:37

Re: rieMiner - Solo + pooled Riecoin mining

Post by Pttn » 03 Dec 2018, 17:20

Rockhawk wrote:
03 Dec 2018, 16:52
Rockhawk wrote:
03 Dec 2018, 00:55
I've only tested to 2^33 and didn't notice CPU blips, although I might have missed them. Do you have enough sieve workers to keep the queue full?
It would be a good idea to factor the sieve max into the default number of workers, as it would be good if the user didn't have to configure too many parameters to get good performance. I'll have a look at testing different sieve maxes and numbers of threads this evening and try to come up with a better default.
Sieve is a very useful parameter to control memory usage, so I would prefer to keep both options. I even removed the MaxMem option in master as I think that it is too redundant with Sieve. The ideal Sieve will additionally not only depend on the number of Threads, but also on the Difficulty, so I feel that it is better to keep it as an option as it would be too tricky to compute the ideal value from the number of Workers.
rieMiner - Riecoin solo + pooled miner
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!

Pttn
Posts: 143
Joined: 24 Aug 2018, 13:37

Re: rieMiner - Solo + pooled Riecoin mining

Post by Pttn » 03 Dec 2018, 18:01

Pttn wrote:
03 Dec 2018, 17:01
I encountered again a Segmentation Fault, this time not after the miner restarted. Too bad that I forgot to run in Gdb, but now it should mean that my fix is not the problem. I hope that I will catch it this time to get a full stack trace. It would be really annoying to have the miner randomly stop after some hours or days. Maybe you might let some threads mining in background as well to possibly catch yourself this bug.
Just caught this (from current Master), any idea to fix this?

Code: Select all

rieMiner 0.9RC3, Riecoin miner by Pttn and contributors
Project page: https://github.com/Pttn/rieMiner
Go to project page or open README.md for usage information
-----------------------------------------------------------
GMP 6.1.2
LibCurl 7.62.0
Jansson 2.11
-----------------------------------------------------------
Using custom configuration file path ../rieMinerConf/GetBlockTemplate.conf
Opening ../rieMinerConf/GetBlockTemplate.conf...
Ignoring line with unused key //PN
Host = ...
Port = ...
User = ...
Pass = ...
Protocol = GetBlockTemplate
Payout address = RPttnMeMTGRn3YJUjTyvtqUp9FNa7NXBgy
Threads = 16
Sieve max = 8589934592
Will submit tuples of at least length 4
Stats refresh rate = 60 s
Tuple Count File = rieMiner.dat
Primorial Number  = 40
Primorial Offsets = (4209995887, 4209999247, 4210002607, 4210005967, 7452755407, 7452758767, 7452762127, 7452765487)
Constellation Type = (n, n + 4, n + 6, n + 10, n + 12, n + 16), length 6
Sieve bits = 25
-----------------------------------------------------------
Sieve Workers = 4
Best SIMD instructions supported: AVX2
Generating prime table using sieve of Eratosthenes...
Table with all 393615806 first primes generated.
Estimated memory usage: 29755.5 MiB
Reduce Sieve option value to lower this, if needed.
Precomputing division data...
[New Thread 0x7fff3a209700 (LWP 16440)]
[New Thread 0x7fff39a08700 (LWP 16441)]
[New Thread 0x7fff39207700 (LWP 16442)]
[New Thread 0x7fff38a06700 (LWP 16443)]
[New Thread 0x7fff2bfff700 (LWP 16444)]
[New Thread 0x7fff2b7fe700 (LWP 16445)]
[New Thread 0x7fff2affd700 (LWP 16446)]
[New Thread 0x7fff2a7fc700 (LWP 16447)]
[New Thread 0x7fff29ffb700 (LWP 16448)]
[New Thread 0x7fff297fa700 (LWP 16449)]
[New Thread 0x7fff28ff9700 (LWP 16450)]
[New Thread 0x7fff0ffff700 (LWP 16451)]
[New Thread 0x7fff0f7fe700 (LWP 16452)]
[New Thread 0x7fff0effd700 (LWP 16453)]
[New Thread 0x7fff0e7fc700 (LWP 16454)]
[New Thread 0x7fff0dffb700 (LWP 16455)]
[Thread 0x7fff3a209700 (LWP 16440) exited]
[Thread 0x7fff39a08700 (LWP 16441) exited]
[Thread 0x7fff39207700 (LWP 16442) exited]
[Thread 0x7fff38a06700 (LWP 16443) exited]
[Thread 0x7fff297fa700 (LWP 16449) exited]
[Thread 0x7fff2b7fe700 (LWP 16445) exited]
[Thread 0x7fff2bfff700 (LWP 16444) exited]
[Thread 0x7fff0f7fe700 (LWP 16452) exited]
[Thread 0x7fff2a7fc700 (LWP 16447) exited]
[Thread 0x7fff0effd700 (LWP 16453) exited]
[Thread 0x7fff0dffb700 (LWP 16455) exited]
[Thread 0x7fff28ff9700 (LWP 16450) exited]
[Thread 0x7fff0ffff700 (LWP 16451) exited]
[Thread 0x7fff29ffb700 (LWP 16448) exited]
[Thread 0x7fff2affd700 (LWP 16446) exited]
[Thread 0x7fff0e7fc700 (LWP 16454) exited]
Starting 16 + 1 threads
[New Thread 0x7fff0dffb700 (LWP 16456)]
[New Thread 0x7fff0e7fc700 (LWP 16457)]
[New Thread 0x7fff0effd700 (LWP 16458)]
[New Thread 0x7fff0f7fe700 (LWP 16459)]
[New Thread 0x7fff3a209700 (LWP 16460)]
[New Thread 0x7fff39a08700 (LWP 16461)]
[New Thread 0x7fff39207700 (LWP 16462)]
[New Thread 0x7fff38a06700 (LWP 16463)]
[New Thread 0x7fff2bfff700 (LWP 16464)]
[New Thread 0x7fff2b7fe700 (LWP 16465)]
[New Thread 0x7fff2affd700 (LWP 16466)]
[New Thread 0x7fff2a7fc700 (LWP 16467)]
[New Thread 0x7fff29ffb700 (LWP 16468)]
[New Thread 0x7fff297fa700 (LWP 16469)]
[New Thread 0x7fff28ff9700 (LWP 16470)]
[New Thread 0x7fff0ffff700 (LWP 16471)]
[New Thread 0x7fff0d7fa700 (LWP 16472)]
Connecting to Riecoin server...
Connected!
Opening tuples counts file rieMiner.dat...
Success! Loading data...
-----------------------------------------------------------
[0000:00:00] Started mining at block 998027, difficulty 1365
[0000:00:27] 4-tuple found
...
[0001:50:42] 4-tuple found
[0001:50:56] 6-tuple found, this is a block!
Sent: {"method": "submitblock", "params": ["0000002087318391f3f9acdb7864e84b92034de5783a5cde694794281df799954c220c3cfdcd0540a15479df50d53288091407ecf5425488fe6e6e3f09e11ea6ef2861fb005505026f69055c000000003fa5a4a9b9c492acd946033ad7ae7fd143f934f9496fcea43e1297a18dffcf890101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff1003aa3a0f7269654d696e6572bf496e5affffffff0100f90295000000001976a914a0524c39408c405357010881226da2c6c467e72488ac00000000"], "id": 0}
Submission accepted :D !
[0001:50:56] Blockheight 998058, average 214.7 s, difficulty 1365
[0001:51:13] (1-3t/s) = (293.8 12.60 0.545) ; (2-6t) = (84051 3638 157 11 2) | 6.53 h
[0001:52:13] (1-3t/s) = (293.9 12.60 0.546) ; (2-6t) = (84830 3674 157 11 2) | 6.53 h
[0001:53:09] 4-tuple found
[0001:53:13] (1-3t/s) = (293.9 12.59 0.544) ; (2-6t) = (85564 3696 158 11 2) | 6.54 h
[0001:53:37] 4-tuple found
[0001:54:13] (1-3t/s) = (293.9 12.60 0.544) ; (2-6t) = (86331 3725 159 11 2) | 6.54 h
[0001:54:27] Blockheight 998059, average 214.6 s, difficulty 1365
[0001:54:40] 4-tuple found
[0001:55:06] Blockheight 998060, average 209.3 s, difficulty 1365
[0001:55:14] (1-3t/s) = (293.5 12.57 0.543) ; (2-6t) = (86908 3757 160 11 2) | 6.56 h
[0001:55:28] 4-tuple found
[0001:56:14] (1-3t/s) = (293.3 12.56 0.543) ; (2-6t) = (87589 3787 161 11 2) | 6.57 h
[0001:56:29] 4-tuple found
[0001:56:36] 4-tuple found
[0001:56:52] 4-tuple found
[0001:57:14] (1-3t/s) = (293.4 12.56 0.543) ; (2-6t) = (88359 3816 164 11 2) | 6.58 h
[0001:58:10] 4-tuple found
[0001:58:14] (1-3t/s) = (293.4 12.57 0.542) ; (2-6t) = (89142 3848 165 11 2) | 6.57 h
[0001:59:14] (1-3t/s) = (293.3 12.57 0.542) ; (2-6t) = (89952 3879 165 11 2) | 6.54 h
[0001:59:26] 4-tuple found
[0001:59:28] 4-tuple found
[0002:00:14] (1-3t/s) = (293.4 12.58 0.543) ; (2-6t) = (90784 3917 167 11 2) | 6.53 h
[0002:00:43] 4-tuple found
[0002:01:14] 4-tuple found
[0002:01:14] (1-3t/s) = (293.4 12.59 0.544) ; (2-6t) = (91562 3956 169 11 2) | 6.52 h
[0002:02:14] (1-3t/s) = (293.3 12.58 0.543) ; (2-6t) = (92277 3981 169 11 2) | 6.52 h
rieMiner: Miner.hpp:122: void Miner::_addToPending(uint8_t*, uint32_t*, uint64_t&, uint32_t): Assertion `old < _parameters.sieveSize' failed.

Thread 29 "rieMiner" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fff2a7fc700 (LWP 16467)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff75382f1 in __GI_abort () at abort.c:79
#2  0x00007ffff752fa8a in __assert_fail_base (fmt=0x7ffff7683ec8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5555555c3a3d "old < _parameters.sieveSize", file=file@entry=0x5555555c3a33 "Miner.hpp", 
    line=line@entry=122, 
    function=function@entry=0x5555555c3f60 <Miner::_addToPending(unsigned char*, unsigned int*, unsigned long&, unsigned int)::__PRETTY_FUNCTION__> "void Miner::_addToPending(uint8_t*, uint32_t*, uint64_t&, uint32_t)")
    at assert.c:92
#3  0x00007ffff752fb02 in __GI___assert_fail (assertion=assertion@entry=0x5555555c3a3d "old < _parameters.sieveSize", file=file@entry=0x5555555c3a33 "Miner.hpp", line=line@entry=122, 
    function=function@entry=0x5555555c3f60 <Miner::_addToPending(unsigned char*, unsigned int*, unsigned long&, unsigned int)::__PRETTY_FUNCTION__> "void Miner::_addToPending(uint8_t*, uint32_t*, uint64_t&, uint32_t)")
    at assert.c:101
#4  0x00005555555679b5 in Miner::_addToPending (ent=<optimized out>, pos=<optimized out>, pending=<optimized out>, sieve=<optimized out>, this=<optimized out>) at Miner.hpp:142
#5  Miner::_addRegToPending (mask=<optimized out>, reg=..., pos=<optimized out>, pending=<optimized out>, sieve=<optimized out>, this=<optimized out>) at Miner.hpp:131
#6  Miner::_processSieve6 (this=<optimized out>, sieve=<optimized out>, offsets=<optimized out>, start_i=<optimized out>, end_i=28192750) at Miner.cpp:437
#7  0x000055555556c161 in Miner::_runSieve(SieveInstance&, unsigned int) () at Miner.cpp:483
#8  0x000055555556ceb1 in Miner::_verifyThread() () at Miner.cpp:569
#9  0x000055555556ed88 in Miner::process (this=this@entry=0x55555561aff0, block=...) at Miner.cpp:672
#10 0x0000555555588291 in WorkManager::minerThread() () at /usr/include/c++/8/bits/char_traits.h:285
#11 0x00007ffff794aaff in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff76c5f2a in start_thread (arg=0x7fff2a7fc700) at pthread_create.c:463
#13 0x00007ffff75f8edf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
rieMiner - Riecoin solo + pooled miner
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!

Rockhawk
Posts: 48
Joined: 29 Oct 2018, 21:12

Re: rieMiner - Solo + pooled Riecoin mining

Post by Rockhawk » 03 Dec 2018, 18:06

Pttn wrote:
03 Dec 2018, 17:01
Thank you for the background, no wonder why you know so much about this now, 20 years of experience in finding prime tuples, impressive!
Nice that you think that rieMiner is fairly efficient. If doable, it could be very interesting to implement later this deep sieving (and anything else needed) to add a neat fourth mode along with GetBlockTemplate/Stratum/Benchmark and have a reference software that should be used to beat records.
This would definitively help exposing the project, attracting all competitors, you came here because of the records list after all.
I nearly started work on something like this a few weeks ago, but thinking about it I had lots of ideas how to improve the miner so I've done them first. Good to know that you would be interested in this being a mode of the miner rather than a different project - I'm about out of ideas on improvements to the miner for now, so I'll look at this again at some point.
Pttn wrote:
03 Dec 2018, 17:01
Very nice. As I cannot test AVX512 at all and it is still not mainstream, I would release the stable version with AVX512 labelled as experimental.
That seems sensible.
Pttn wrote:
03 Dec 2018, 17:01
I encountered again a Segmentation Fault, this time not after the miner restarted. Too bad that I forgot to run in Gdb, but now it should mean that my fix is not the problem. I hope that I will catch it this time to get a full stack trace. It would be really annoying to have the miner randomly stop after some hours or days. Maybe you might let some threads mining in background as well to possibly catch yourself this bug.
Interesting, I generally leave the miner running on my i7-3770 and haven't seen any seg faults. I'll switch to running in gdb and let you know if I find anything.
Pttn wrote:
03 Dec 2018, 17:20
Sieve is a very useful parameter to control memory usage, so I would prefer to keep both options. I even removed the MaxMem option in master as I think that it is too redundant with Sieve. The ideal Sieve will additionally not only depend on the number of Threads, but also on the Difficulty, so I feel that it is better to keep it as an option as it would be too tricky to compute the ideal value from the number of Workers.
I didn't mean removing Sieve. Absolutely the user should be able to control that! I just meant changing the default of Sieve Workers from Threads/5 to something that adjusted based on Sieve as well as Threads. You'd still be able to override it in the configuration file too.

Rockhawk
Posts: 48
Joined: 29 Oct 2018, 21:12

Re: rieMiner - Solo + pooled Riecoin mining

Post by Rockhawk » 03 Dec 2018, 18:15

Pttn wrote:
03 Dec 2018, 18:01
Just caught this (from current Master), any idea to fix this?

Code: Select all

rieMiner: Miner.hpp:122: void Miner::_addToPending(uint8_t*, uint32_t*, uint64_t&, uint32_t): Assertion `old < _parameters.sieveSize' failed.

Thread 29 "rieMiner" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fff2a7fc700 (LWP 16467)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff75382f1 in __GI_abort () at abort.c:79
#2  0x00007ffff752fa8a in __assert_fail_base (fmt=0x7ffff7683ec8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5555555c3a3d "old < _parameters.sieveSize", file=file@entry=0x5555555c3a33 "Miner.hpp", 
    line=line@entry=122, 
    function=function@entry=0x5555555c3f60 <Miner::_addToPending(unsigned char*, unsigned int*, unsigned long&, unsigned int)::__PRETTY_FUNCTION__> "void Miner::_addToPending(uint8_t*, uint32_t*, uint64_t&, uint32_t)")
    at assert.c:92
#3  0x00007ffff752fb02 in __GI___assert_fail (assertion=assertion@entry=0x5555555c3a3d "old < _parameters.sieveSize", file=file@entry=0x5555555c3a33 "Miner.hpp", line=line@entry=122, 
    function=function@entry=0x5555555c3f60 <Miner::_addToPending(unsigned char*, unsigned int*, unsigned long&, unsigned int)::__PRETTY_FUNCTION__> "void Miner::_addToPending(uint8_t*, uint32_t*, uint64_t&, uint32_t)")
    at assert.c:101
#4  0x00005555555679b5 in Miner::_addToPending (ent=<optimized out>, pos=<optimized out>, pending=<optimized out>, sieve=<optimized out>, this=<optimized out>) at Miner.hpp:142
#5  Miner::_addRegToPending (mask=<optimized out>, reg=..., pos=<optimized out>, pending=<optimized out>, sieve=<optimized out>, this=<optimized out>) at Miner.hpp:131
#6  Miner::_processSieve6 (this=<optimized out>, sieve=<optimized out>, offsets=<optimized out>, start_i=<optimized out>, end_i=28192750) at Miner.cpp:437
#7  0x000055555556c161 in Miner::_runSieve(SieveInstance&, unsigned int) () at Miner.cpp:483
#8  0x000055555556ceb1 in Miner::_verifyThread() () at Miner.cpp:569
#9  0x000055555556ed88 in Miner::process (this=this@entry=0x55555561aff0, block=...) at Miner.cpp:672
#10 0x0000555555588291 in WorkManager::minerThread() () at /usr/include/c++/8/bits/char_traits.h:285
#11 0x00007ffff794aaff in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff76c5f2a in start_thread (arg=0x7fff2a7fc700) at pthread_create.c:463
#13 0x00007ffff75f8edf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Interesting. Do you still have that up? Does the debugger let you see what old is? Is it nonsense or is it only just over sieveSize?

If you can work out the value of the loop index i in Miner::_processSieve6 that could also be a clue.

Pttn
Posts: 143
Joined: 24 Aug 2018, 13:37

Re: rieMiner - Solo + pooled Riecoin mining

Post by Pttn » 03 Dec 2018, 18:42

Rockhawk wrote:
03 Dec 2018, 18:15
Interesting. Do you still have that up? Does the debugger let you see what old is? Is it nonsense or is it only just over sieveSize?

If you can work out the value of the loop index i in Miner::_processSieve6 that could also be a clue.
Sorry, I restarted it in order to possibly catch some other errors, as this one is clearly different from the segmentation faults that I got before. There has to be at least 2 bugs in the code. Next time, I will wait for you if I find something interesting.

If you never had bugs with your 3770, it may be related to the number of Sieve Workers, with no bug occurring when using only 1 Sieve Worker (I have a 6700K@3 GHz still running after finding 17 blocks, though with a slightly older version)? Or maybe some overflow occurred somewhere with 32 bits numbers used instead of 64 bits.
rieMiner - Riecoin solo + pooled miner
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!

Rockhawk
Posts: 48
Joined: 29 Oct 2018, 21:12

Re: rieMiner - Solo + pooled Riecoin mining

Post by Rockhawk » 03 Dec 2018, 18:47

Pttn wrote:
03 Dec 2018, 18:01
Just caught this (from current Master), any idea to fix this?
I think I see a potential way for this to happen, but I don't think it is possible with the default values for primorial number and denseLimit. I will remove denseLimit and _nDense because they aren't used any more and we round the number of primes to sieve based on denseLimit, which is what can go wrong.

The assert might show as a seg fault if you build with "make release" (which compiles out the asserts - that's how I normally run when not debugging, which might be why I haven't seen a problem).

I've been sieving to 8*10^9 with 2 sieve workers, so should be testing most of the code paths. However, I'm now running a debug build in gdb, so maybe I'll see the problem locally, which would be helpful!

Pttn
Posts: 143
Joined: 24 Aug 2018, 13:37

Re: rieMiner - Solo + pooled Riecoin mining

Post by Pttn » 03 Dec 2018, 18:53

Rockhawk wrote:
03 Dec 2018, 18:47
Pttn wrote:
03 Dec 2018, 18:01
Just caught this (from current Master), any idea to fix this?
I think I see a potential way for this to happen, but I don't think it is possible with the default values for primorial number and denseLimit. I will remove denseLimit and _nDense because they aren't used any more and we round the number of primes to sieve based on denseLimit, which is what can go wrong.

The assert might show as a seg fault if you build with "make release" (which compiles out the asserts - that's how I normally run when not debugging, which might be why I haven't seen a problem).

I've been sieving to 8*10^9 with 2 sieve workers, so should be testing most of the code paths. However, I'm now running a debug build in gdb, so maybe I'll see the problem locally, which would be helpful!
When not debugging, I always "made" without anything, so it would have shown the Assert.

Bugs seem to be very random, I was able to mine for days without any issue, but 2 times I got one after ~1 h.
I hope that it is not a hardware fault either...
rieMiner - Riecoin solo + pooled miner
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!

Post Reply