GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Chess Programming Wiki
  • All pages
  • Other namespaces
  • Categories
  • Credits

This view

  • Original page
  • New address

GeezerVison is showing chessprogramming.org — Optimization - Chess Programming Wiki

Optimization

Home * Programming * Optimization

Optimization is about to chose the best element from some set of available alternatives, as referred in mathematical optimization as for instance applied in computer chess to optimize evaluation weights with automated tuning methods, and program optimizations, which is the topic covered on this page. Most importantly there is the algorithmic optimization on design level such as using alpha-beta rather than plain minimax, followed by source code optimizations, and finally Compiler optimizations.

Contents
  1. Premature Optimization
  2. Program Optimizations
  3. See also
  4. Publications
  5. Forum Posts
  6. External Links
    1. Program Optimization
    2. Mathematical Optimization
  7. References

Premature Optimization

As a warning on premature optimization a quote by Donald Knuth 1:

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.  

Program Optimizations

Program Optimization is a necessary part of a decent chess program. It comes in two forms, compiler-end and program-end. Compiler-end optimization involves using specific flags to get a quick program at the cost of speed of compile and memory usage, whereas program-end optimization involves using inline functions and things like that.

  • Avoiding Branches
  • Performance Measurement
  • Profiling
  • SIMD and SWAR Techniques

See also

  • Automated Tuning
  • Genetic Programming
  • NUMA
  • Simulated Annealing

Publications

  • Bruce W. Leverett (1981). Register allocation in optimizing compilers. Ph.D. thesis, Carnegie Mellon University
  • Bruce W. Leverett (1982). Topics in Code Generation and Register Allocation. Carnegie Mellon University
  • Bruce W. Leverett (1983). Register allocation in optimizing compilers. UMI Research Press

Forum Posts

  • Beginner's guide to graphical profiling by Matthew Lai, CCC, September 10, 2016 » Profiling, Giraffe

Re: Beginner's guide to graphical profiling by Marco Costalba, CCC, September 10, 2016 » Stockfish

  • Reliable speed comparison: some math required by Marco Costalba, CCC, February 27, 2018 » Nodes per Second
  • Performance loss when removing unused function by Oliver Brausch, CCC, October 05, 2020
  • Different performance of equal executables by Oliver Brausch, CCC, October 24, 2020

External Links

Program Optimization

  • Program optimization from Wikipedia
  • Compiler optimization from Wikipedia
  • Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X by Agner Fog
  • Programming Optimization by Paul Hsieh

Mathematical Optimization

  • Mathematical optimization from Wikipedia

Global optimization from Wikipedia

Optimization problem from Wikipedia

References

Up one Level


  1. Donald Knuth (1974).Structured Programming with go to Statements. ACM Computing Surveys, Vol. 6, No. 4, pdf↩︎

What links here

Contributors: GerdIsenberg.

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.