I am trying to experiment with the parameter -n in Phalanx XXV. I play a match between phalanx0 (phalanx without any options) vs phalanx1 (phalanx -n 512000 -t 131072). Both phalanx0 and phalanx1 are set to make 40 moves per minute in my test, and in fact use nearly all of 1 minute for 40 moves. I notice that phalanx0 gives about 800k NPS on my laptop. I would imagine that NPS would depend only on the hardware, i.e., a given algorithm (say phalanx) with given number of moves per second would do a certain number of NPS on a given machine. So my question is how is NPS controlled by the program?
1 Answer
According to the readme.
-n <nodes per second> default: 0 (no limit)
Limits the speed to weaken the engine and to use less resources: The
speed of the machine does not matter here, it uses usleep() during
the search, so with low NPS it does not raise the machine load.
-
Thanks. I understand now. I just did 'man usleep', and it simply suspends the execution of the program. Jul 26, 2022 at 15:42
-
Doesn't usleep only give a minimum time to sleep? does it actually calibrate NPS?– qwrJul 26, 2022 at 17:20
-
Is it reasonable to assume that the same program running on two different hardwares at the same NPS (and keeping other parameters same) would play at roughly the same level? Jul 27, 2022 at 2:21
-
@chesskobra yes, but you have to test it, as the nps may not be perfectly the same. At one point, it may stop searching after 400000 or 390000 or 395000. Depends on how this feature is implemented by the author.– ferdyJul 27, 2022 at 3:47