Difference between revisions of "Thread"

From Chessprogramming wiki
Jump to: navigation, search
 
(7 intermediate revisions by the same user not shown)
Line 65: Line 65:
 
* [http://www.talkchess.com/forum/viewtopic.php?t=44658 hyper threading and move generation] by [[Gabor Buella]], [[CCC]], August 01, 2012 » [[Move Generation]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=44658 hyper threading and move generation] by [[Gabor Buella]], [[CCC]], August 01, 2012 » [[Move Generation]]
 
'''2013'''
 
'''2013'''
* [http://www.open-chess.org/viewtopic.php?f=5&t=2262 Multi-threaded memory access] by [[Vadim Demichev|ThinkingALot]], [[Computer Chess Forums|OpenChess Forum]], February 10, 2013 » [[Memory]], [[Shared Hash Table]]
+
* [http://www.open-chess.org/viewtopic.php?f=5&t=2262 Multi-threaded memory access] by [[ThinkingALot]], [[Computer Chess Forums|OpenChess Forum]], February 10, 2013 » [[Memory]], [[Shared Hash Table]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=47757 Hyperthreading and Computer Chess: Intel i5-3210M] by [[Michael Scheidl|Mike Scheidl]], [[CCC]], April 12, 2013
 
* [http://www.talkchess.com/forum/viewtopic.php?t=47757 Hyperthreading and Computer Chess: Intel i5-3210M] by [[Michael Scheidl|Mike Scheidl]], [[CCC]], April 12, 2013
 
* [http://www.talkchess.com/forum/viewtopic.php?t=47820 Implementation of multithreaded search in Jazz] by [[Evert Glebbeek]], [[CCC]], April 20, 2013 » [[Parallel Search]], [[Jazz]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=47820 Implementation of multithreaded search in Jazz] by [[Evert Glebbeek]], [[CCC]], April 20, 2013 » [[Parallel Search]], [[Jazz]]
Line 92: Line 92:
 
* [http://www.talkchess.com/forum/viewtopic.php?t=56113 A cautionary tale on thread safety] by [[Steven Edwards]], [[CCC]], April 25, 2015
 
* [http://www.talkchess.com/forum/viewtopic.php?t=56113 A cautionary tale on thread safety] by [[Steven Edwards]], [[CCC]], April 25, 2015
 
* [http://www.talkchess.com/forum/viewtopic.php?t=56327 A Nice routine] by [[Steven Edwards]], [[CCC]], May 12, 2015
 
* [http://www.talkchess.com/forum/viewtopic.php?t=56327 A Nice routine] by [[Steven Edwards]], [[CCC]], May 12, 2015
 +
* [https://stackoverflow.com/questions/30330013/does-hyperthreading-have-trouble-with-avx Does Hyperthreading have trouble with AVX?] by cmylin, [https://en.wikipedia.org/wiki/Stack_Overflow Stack Overflow], May 19, 2015 »  [[AVX]], [[AVX2]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=56523 Deep split perft()] by [[Steven Edwards]], [[CCC]], May 29, 2015 » [[Perft]], [[Symbolic]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=56523 Deep split perft()] by [[Steven Edwards]], [[CCC]], May 29, 2015 » [[Perft]], [[Symbolic]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=56858 thread affinity] by [[Martin Sedlak]], [[CCC]], July 03, 2015
 
* [http://www.talkchess.com/forum/viewtopic.php?t=56858 thread affinity] by [[Martin Sedlak]], [[CCC]], July 03, 2015
Line 125: Line 126:
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75116 Memory management and threads] by [[Chris Whittington]], [[CCC]], September 15, 2020 » [[Memory]]
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75116 Memory management and threads] by [[Chris Whittington]], [[CCC]], September 15, 2020 » [[Memory]]
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75151 Very Lazy SMP and worker threads] by [[Chris Whittington]], [[CCC]], September 18, 2020 » [[Lazy SMP]]
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75151 Very Lazy SMP and worker threads] by [[Chris Whittington]], [[CCC]], September 18, 2020 » [[Lazy SMP]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=76190 Dispelling the Myth of NNUE with LazySMP: An Analysis] by [[Andrew Grant]], [[CCC]], December 30, 2020 » [[NNUE]], [[Lazy SMP]]
 +
'''2021'''
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=77088 Missing input in ponder] by [[Fabio Gobbato]], [[CCC]], April 15, 2021 » [[UCI]], [[Pondering]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=77142 Thread overhead in C++] by [[Toni Helminen|JohnWoe]], [[CCC]], April 21, 2021
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=77189 Listening for GUI input when searching] by [[Niels Abildskov]], [[CCC]], April 27, 2021 » [[GUI]], [[Search]], [[UCI]]
 +
* [https://www.talkchess.com/forum3/viewtopic.php?f=2&t=78548 Single core?] by [[Gabor Szots]], [[CCC]], October 30, 2021
 +
'''2022'''
 +
* [https://www.talkchess.com/forum3/viewtopic.php?f=7&t=79588 Stockfish search] by Werewolf, [[CCC]], March 26, 2022 » [[Lazy SMP]], [[Stockfish]]
  
 
=External Links=  
 
=External Links=  

Latest revision as of 21:14, 28 March 2022

Home * Programming * Thread

Two threads on a single processor [1]

A Thread is the smallest unit of processing that can be scheduled by an operating system. One or multiple threads can exist within the same process to share its resources such as memory. Modern operating systems support both time-sliced and multiprocessor threading within a process scheduler. Some operating systems such as Windows distinguish worker threads from GUI-threads, which incorporate a message loop, able to receive messages from worker threads. Threads share global data of the process, but use disjoint stacks for local variables.

Chess programs using threads for a parallel search have to deal with synchronization issues, if multiple threads read and write none atomic global data simultaneously, requiring multiple read and/or write cycles. A good step to make a program thread safe, is to avoid global variables and to keep board and game states as locals on the stack. To minimize context switching, chess programs often implement a thread pooling pattern along with explicitly or implicitly controlling processor affinity, where the number of threads of the chess program is less or equal to the number of physical processor cores. Threads are further versatile to control standard input inside an engine.

See also

Publications

1994 ...

2000 ...

2010 ...

Forum Posts

1999

2000 ...

2005 ...

2010 ...

2011

2012

2013

2014

2015 ...

Explanation for non-expert? by Louis Zulli, CCC, February 16, 2015 » Stockfish

2016

Re: Baffling multithreading scaling behavior by Robert Hyatt, CCC, September 07, 2016

2017

Re: Lazy SMP >4 Thread Slowdown by Ronald de Man, CCC, November 29, 2017

2018

2019

Re: Hyperthreading on or off by Andrew Grant, CCC, January 20, 2019

2020 ...

2021

2022

External Links

Thread

Multithreading

Posix

Windows

Creating Threads

C++

Java

GPU

References

Up one Level