Agner Fog is a Danish
evolutionary anthropologist and
computer scientist
A computer scientist is a person who is trained in the academic study of computer science.
Computer scientists typically work on the theoretical side of computation, as opposed to the hardware side on which computer engineers mainly focus (a ...
. He is currently an Associate Professor of computer science at the
Technical University of Denmark
The Technical University of Denmark ( da, Danmarks Tekniske Universitet), often simply referred to as DTU, is a polytechnic university and school of engineering. It was founded in 1829 at the initiative of Hans Christian Ørsted as Denmark's fir ...
(DTU), and has been present at DTU since 1995. He is best known for coining the term "
Regality Theory" and for writing extensive optimization manuals for machines running the
x86 architecture
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was int ...
.
Social sciences
Agner Fog is the main investigator of
Regality Theory, the proposition that the environment a group is in selects for certain psychological traits. As a result, a harsher environment selects for more regal (warlike) social structures while a safer environment selects for more kungic (peaceful) ones.
Programming and mathematics
Optimization
Agner Fog is known as a "CPU analyst" to tech websites covering x86 CPUs.
[ He maintains a five-volume manual for optimizing code for x86 CPUs, with details on the instruction timing and other features of individual ]microarchitecture
In computer engineering, microarchitecture, also called computer organization and sometimes abbreviated as µarch or uarch, is the way a given instruction set architecture (ISA) is implemented in a particular processor. A given ISA may be imp ...
s. He also maintains a Vector Class Library for SIMD
Single instruction, multiple data (SIMD) is a type of parallel processing in Flynn's taxonomy. SIMD can be internal (part of the hardware design) and it can be directly accessible through an instruction set architecture (ISA), but it shoul ...
math, an assembly subroutine library ("asmlib"), as well as many other utilities.
Agner Fog has also written extensively on the behavior of Intel C++ Compiler
Intel oneAPI DPC++/C++ Compiler and Intel C++ Compiler Classic are Intel’s C, C++, SYCL, and Data Parallel C++ (DPC++) compilers for Intel processor-based systems, available for Windows, Linux, and macOS operating systems.
Overview
Intel ...
and Intel MKL on non-Intel CPUs, coining the term "cripple AMD" to describe the bias.
Vector Class Library
Agner Fog is the main author of the C++ Vector Class Library. This is an open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized so ...
C++ class
Class or The Class may refer to:
Common uses not otherwise categorized
* Class (biology), a taxonomic rank
* Class (knowledge representation), a collection of individuals or objects
* Class (philosophy), an analytical concept used differently ...
library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
for optimizing SIMD
Single instruction, multiple data (SIMD) is a type of parallel processing in Flynn's taxonomy. SIMD can be internal (part of the hardware design) and it can be directly accessible through an instruction set architecture (ISA), but it shoul ...
code.
ForwardCom instruction set
Agner Fog has designed the ForwardCom instruction set. This is a high performance open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized so ...
CPU Instruction set architecture
In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an ...
with variable-length vector registers. The instruction set is neither RISC
In computer engineering, a reduced instruction set computer (RISC) is a computer designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a complex instruction set comp ...
nor CISC, but a compromise with few instructions and many variants of each instruction.
Other subjects
Fog has written a few pseudorandom number generator
A pseudorandom number generator (PRNG), also known as a deterministic random bit generator (DRBG), is an algorithm for generating a sequence of numbers whose properties approximate the properties of sequences of random numbers. The PRNG-generate ...
s with a variety of distributions, with a focus on performance (SIMD) and correctness with regard to floating-point behavior and statistical properties. These are used in simulations for his anthropology research.
References
{{DEFAULTSORT:Fog, Agner
Free software programmers
Danish computer programmers
Danish social scientists
Living people
Year of birth missing (living people)