xmrig Monero Dwarfpool Image Testing

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
Based on @Klee's advice using gcc 6.3 with a docker image for Monero testing on Dwarfpool.

How to get the image
Code:
docker pull servethehome/monero_dwarfpool:xmrig
Environment variables
  • -e username=<wallet address> for your monero mining address
  • -e email=<email address> for your email address on dwarfpool
  • Optional: -e numthreads=N where N is the number of threads you want to use
  • Optional: -e startport=<8005,8050,8100> Default is 8050 but you can now edit this.

Validation
Code:
[100%] Built target xmrig
 * VERSIONS:     XMRig/2.3.1 libuv/1.9.1 gcc/6.3.0
 * HUGE PAGES:   available, enabled
 * CPU:          Intel(R) Atom(TM) CPU C3955 @ 2.10GHz (1) x64 AES-NI
 * CPU L2/L3:    32.0 MB/0.0 MB
 * THREADS:      8, cryptonight, av=1, donate=0%
 * POOL #1:      xmr-usa.dwarfpool.com:8050
 * COMMANDS:     hashrate, pause, resume
[2017-10-02 17:30:56] use pool xmr-usa.dwarfpool.com:8050 144.217.61.241
[2017-10-02 17:30:56] new job from xmr-usa.dwarfpool.com:8050 diff 50000
[2017-10-02 17:31:09] accepted (1/0) diff 50000 (106 ms)
[2017-10-02 17:31:54] new job from xmr-usa.dwarfpool.com:8050 diff 50000
[2017-10-02 17:32:00] speed 2.5s/60s/15m 430.5 428.3 n/a H/s max: 431.0 H/s
[2017-10-02 17:32:25] accepted (2/0) diff 50000 (105 ms)
[2017-10-02 17:32:48] accepted (3/0) diff 50000 (105 ms)
[2017-10-02 17:32:54] new job from xmr-usa.dwarfpool.com:8050 diff 50000
[2017-10-02 17:33:00] speed 2.5s/60s/15m 430.1 428.4 n/a H/s max: 431.0 H/s
[2017-10-02 17:33:06] accepted (4/0) diff 50000 (108 ms)
You can see here that hugepages are enabled in the container. For that to work you need to set them in the underlying OS. You do not need to run the container in --privileged mode.

Next Steps

  • The next step is that donation level will be added via command line variable. This would have been easier but xmrig default donation level causes an error.
  • The current threads default is simply nproc / 2 but it will likely default back to xmrig default logic in the next iteration.
  • EPYC numbers for xmrig seem terrible.
 
Last edited:
  • Like
Reactions: RBE

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
Does anyone have a Skylake-SP thread for monero mining logic handy? Trying to get it down through trial and error but it is not easy.
 

yuzmemak

New Member
Aug 31, 2017
27
1
3
52
Based on @Klee's advice using gcc 6.3 with a docker image for Monero testing on Dwarfpool.

How to get the image
Code:
docker pull servethehome/monero_dwarfpool:xmrig
Environment variables
  • -e username=<wallet address> for your monero mining address
  • -e email=<email address> for your email address on dwarfpool
  • Optional: -e numthreads=N where N is the number of threads you want to use
  • Optional: -e startport=<8005,8050,8100> Default is 8050 but you can now edit this.

Validation
Code:
[100%] Built target xmrig
 * VERSIONS:     XMRig/2.3.1 libuv/1.9.1 gcc/6.3.0
 * HUGE PAGES:   available, enabled
 * CPU:          Intel(R) Atom(TM) CPU C3955 @ 2.10GHz (1) x64 AES-NI
 * CPU L2/L3:    32.0 MB/0.0 MB
 * THREADS:      8, cryptonight, av=1, donate=0%
 * POOL #1:      xmr-usa.dwarfpool.com:8050
 * COMMANDS:     hashrate, pause, resume
[2017-10-02 17:30:56] use pool xmr-usa.dwarfpool.com:8050 144.217.61.241
[2017-10-02 17:30:56] new job from xmr-usa.dwarfpool.com:8050 diff 50000
[2017-10-02 17:31:09] accepted (1/0) diff 50000 (106 ms)
[2017-10-02 17:31:54] new job from xmr-usa.dwarfpool.com:8050 diff 50000
[2017-10-02 17:32:00] speed 2.5s/60s/15m 430.5 428.3 n/a H/s max: 431.0 H/s
[2017-10-02 17:32:25] accepted (2/0) diff 50000 (105 ms)
[2017-10-02 17:32:48] accepted (3/0) diff 50000 (105 ms)
[2017-10-02 17:32:54] new job from xmr-usa.dwarfpool.com:8050 diff 50000
[2017-10-02 17:33:00] speed 2.5s/60s/15m 430.1 428.4 n/a H/s max: 431.0 H/s
[2017-10-02 17:33:06] accepted (4/0) diff 50000 (108 ms)
You can see here that hugepages are enabled in the container. For that to work you need to set them in the underlying OS. You do not need to run the container in --privileged mode.

Next Steps

  • The next step is that donation level will be added via command line variable. This would have been easier but xmrig default donation level causes an error.
  • The current threads default is simply nproc / 2 but it will likely default back to xmrig default logic in the next iteration.
  • EPYC numbers for xmrig seem terrible.
Hi

Do you mind to give some info regarding docker. Some of us, no idea about docker, like me.

How can be part of this test?

Br

Sent from my SM-G900F using Tapatalk
 

RBE

Member
Sep 5, 2017
60
34
18
There are plenty of Docker-related articles on the main STH site, like this one for instance. In addition, the official Docker documentation is very useful. You might want to start with their guide to installing Docker if you have not done so already...
 

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
You can just run the docker image. Free for anyone to use.
 

yuzmemak

New Member
Aug 31, 2017
27
1
3
52
There are plenty of Docker-related articles on the main STH site, like this one for instance. In addition, the official Docker documentation is very useful. You might want to start with their guide to installing Docker if you have not done so already...
Hi and thanks

I will look.

Sent from my SM-G900F using Tapatalk
 

Klee

Well-Known Member
Jun 2, 2016
1,289
396
83
Based on @Klee's advice using gcc 6.3 with a docker image for Monero testing on Dwarfpool.

How to get the image
Code:
docker pull servethehome/monero_dwarfpool:xmrig
Environment variables
  • -e username=<wallet address> for your monero mining address
  • -e email=<email address> for your email address on dwarfpool
  • Optional: -e numthreads=N where N is the number of threads you want to use
  • Optional: -e startport=<8005,8050,8100> Default is 8050 but you can now edit this.

Validation
Code:
[100%] Built target xmrig
 * VERSIONS:     XMRig/2.3.1 libuv/1.9.1 gcc/6.3.0
 * HUGE PAGES:   available, enabled
 * CPU:          Intel(R) Atom(TM) CPU C3955 @ 2.10GHz (1) x64 AES-NI
 * CPU L2/L3:    32.0 MB/0.0 MB
 * THREADS:      8, cryptonight, av=1, donate=0%
 * POOL #1:      xmr-usa.dwarfpool.com:8050
 * COMMANDS:     hashrate, pause, resume
[2017-10-02 17:30:56] use pool xmr-usa.dwarfpool.com:8050 144.217.61.241
[2017-10-02 17:30:56] new job from xmr-usa.dwarfpool.com:8050 diff 50000
[2017-10-02 17:31:09] accepted (1/0) diff 50000 (106 ms)
[2017-10-02 17:31:54] new job from xmr-usa.dwarfpool.com:8050 diff 50000
[2017-10-02 17:32:00] speed 2.5s/60s/15m 430.5 428.3 n/a H/s max: 431.0 H/s
[2017-10-02 17:32:25] accepted (2/0) diff 50000 (105 ms)
[2017-10-02 17:32:48] accepted (3/0) diff 50000 (105 ms)
[2017-10-02 17:32:54] new job from xmr-usa.dwarfpool.com:8050 diff 50000
[2017-10-02 17:33:00] speed 2.5s/60s/15m 430.1 428.4 n/a H/s max: 431.0 H/s
[2017-10-02 17:33:06] accepted (4/0) diff 50000 (108 ms)
You can see here that hugepages are enabled in the container. For that to work you need to set them in the underlying OS. You do not need to run the container in --privileged mode.

Next Steps

  • The next step is that donation level will be added via command line variable. This would have been easier but xmrig default donation level causes an error.
  • The current threads default is simply nproc / 2 but it will likely default back to xmrig default logic in the next iteration.
  • EPYC numbers for xmrig seem terrible.


The default donation level of %5 causes the issue or having the line for the donation in the config-json file is what is causing an issue?

Issues with EPYC, not surprised it also has issues with NUMA with all my dual cpu's setups.

Dev is supposed to fix that next release, no idea when tho.

Xmrig-Nvidia works GREAT on mt GTX 1080 Ti.

Its faster than xmr-stak-nvidia .
 
Last edited:

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
The default donation level of %5 causes the issue or having the line for the donation is what is causing an issue?
There is a --donate-level flag. If you set to 1 it works no problem. If it is set to 0 it will not run.

Getting good results so far, especially with the Xeon Scalable.
 

Klee

Well-Known Member
Jun 2, 2016
1,289
396
83
You have to edit the donate.h file *before* you compile the program.

I have not done that, i'm ok with donating %1 to the dev for now.

From the donate.h file:

"/*
* Dev donation.
*
* Percentage of your hashing power that you want to donate to the developer, can be 0 if you don't want to do that.
* Example of how it works for the default setting of 1:
* You miner will mine into your usual pool for 99 minutes, then switch to the developer's pool for 1 minute.
* Switching is instant, and only happens after a successful connection, so you never loose any hashes.
*
* If you plan on changing this setting to 0 please consider making a one off donation to my wallet:
* XMR: 48edfHu7V9Z84YzzMa6fUueoELZ9ZRXq9VetWzYGzKt52XU5xvqgzYnDK9URnRoJMk1j8nLwEVsaSWJ4fhdUyZijBGUicoD
* BTC: 1P7ujsXeX7GxQwHNnJsRMgAdNkFZmNVqJT
*/
constexpr const int kDonateLevel = 5;


#endif /* __DONATE_H__ */"

Change the 5 to 0 then compile as usual.
 

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
@Klee yea it would have been easier if you could just do 0.

I do not mind the donation, but if it is 5% faster on some CPUs than Wolf's, and donate 5%, then it is essentially equal.
 

Klee

Well-Known Member
Jun 2, 2016
1,289
396
83
You can also use the above instructions to change the default to %1, 2,3, or what ever you want.

Are you editing the config.json file?

"donate-level": 5,
to
"donate-level": 1,

That is what I have been doing.

From the only dual E5-2660 V1 node that is running xmrig.

"
{
"algo": "cryptonight",
"av": 0,
"background": false,
"colors": true,
"cpu-affinity": null,
"cpu-priority": null,
"donate-level": 1,
"log-file": null,
"max-cpu-usage": 100,
"print-time": 20,
"retries": 5,
"retry-pause": 5,
"safe": false,
"syslog": false,
"threads": null,
"pools": ["

Also change "max-cpu-usage" from 75 to 100 for better performance.
 
Last edited:

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
You can also use the above instructions to change the default to %1, 2,3, or what ever you want.

Are you editing the config.json file?

"donate-level": 5,
to
"donate-level": 1,

That is what I have been doing.

From the only dual E5-2660 V1 node that is running xmrig.

"
{
"algo": "cryptonight",
"av": 0,
"background": false,
"colors": true,
"cpu-affinity": null,
"cpu-priority": null,
"donate-level": 1,
"log-file": null,
"max-cpu-usage": 100,
"print-time": 20,
"retries": 5,
"retry-pause": 5,
"safe": false,
"syslog": false,
"threads": null,
"pools": ["

Also change "max-cpu-usage" from 75 to 100 for better performance.

The donate.h editing is how I made it 0%

I have just been passing along variables via the CLI.
 

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
Since I have been getting this question on NUMA nodes, I wanted to share a sample launch pinning to a NUMA node. Here is a setup using CPU2 (or 3 depending on how you count) on a four socket 8180 system:
Code:
docker run -it -e username=<wallet address> -e email=<e-mail address> -e numthreads=28 -e startport=8100 --cpuset-cpus="56-83" servethehome/monero_dwarfpool:xmrig
You can use the -cpuset-cpus flag to target specific CPUs with the miner(s)

Still working on the number of threads, but it is running at about 1475 per CPU, 5.9KH/s. At 3 CPUs or about 4425H/s it is using 765W. 5.78H/w on a system with an idle 205W TDP CPU and 3/4 TB RAM.
 

Jeggs101

Well-Known Member
Dec 29, 2010
1,529
241
63
Hold on one second mister. 5.9KH/s from a single system? FML. That's way higher than your Monero mining performance thread.
 

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
Just tried changing the dual E5-2699 V4 machine to one xmrig per NUMA instance using physical cores. After about 30 minutes it seems to be a consistent 1-1.3% faster in aggregate. That is certainly a lower impact than on the Skylake-SP node but you can notice it.
 

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
Here is some interesting data with 2x E5-2698 V3's.
  • Wolfs = 1463H/s
  • xmrig across both CPUs = 1550H/s
  • stak container = 1620H/s - 2% dev fee = 1588H/s
  • xmrig 20 threads per container using --cpuset-cpus="0-15,32,36,40,44" and --cpuset-cpus="16-31,48,52,56,60" is running very consistently at 1690H/s combined
The logic on the threads is that the first threads are all physical cores, then spreading out to one hyper thread every four threads on the HT threads belonging to the same NUMA node.

On the 2x E5-2699 V4 system using a similar logic:
  • Wolfs = 1723H/s
  • xmrig across both CPUs = 1869H/s
  • xmrig using cpuset = 1920H/s
Also, I started adding <wallet address>.$(hostname)-1 or -2 to distinguish docker miners on each NUMA node to easily track performance and if one has an issue.

Another bit that it looks like I will be changing is the difficulty. Port 8100 with starting diff 8100 is giving <0.1% rejected shares. Starting on port 8050 (the current default) is 10x higher.

htop of the dual E5-2699 V4 system:
upload_2017-10-7_12-52-32.png

You can see the physical cores all pegged and the HT threads spread out.

Thanks to @Klee for the information on this one!
 
Last edited:
  • Like
Reactions: Klee

Patrick

Administrator
Staff member
Dec 21, 2010
12,511
5,792
113
Looks like it is working on the Skylake-SP dual socket parts as well. Dual Gold 6152's with the same number of threads total (44) went from 2015H/s to 2100H/s just by constraining 22 cores per container to the physical threads.
 
Last edited:

Klee

Well-Known Member
Jun 2, 2016
1,289
396
83
Here is some interesting data with 2x E5-2698 V3's.
  • Wolfs = 1463H/s
  • xmrig across both CPUs = 1550H/s
  • stak container = 1620H/s - 2% dev fee = 1588H/s
  • xmrig 20 threads per container using --cpuset-cpus="0-15,32,36,40,44" and --cpuset-cpus="16-31,48,52,56,60" is running very consistently at 1690H/s combined
The logic on the threads is that the first threads are all physical cores, then spreading out to one hyper thread every four threads on the HT threads belonging to the same NUMA node.

On the 2x E5-2699 V4 system using a similar logic:
  • Wolfs = 1723H/s
  • xmrig across both CPUs = 1869H/s
  • xmrig using cpuset = 1920H/s
Also, I started adding <wallet address>.$(hostname)-1 or -2 to distinguish docker miners on each NUMA node to easily track performance and if one has an issue.

Another bit that it looks like I will be changing is the difficulty. Port 8100 with starting diff 8100 is giving <0.1% rejected shares. Starting on port 8050 (the current default) is 10x higher.

htop of the dual E5-2699 V4 system:
View attachment 6769

You can see the physical cores all pegged and the HT threads spread out.

Thanks to @Klee for the information on this one!
Thanks

It gives me something to think about, but i'm not using docker.

Are you using the docker command string to set "--cpuset-cpus=" or is that something you added to xmrig config.json file?