Nuclear computation is a type of computation which allows threads to either spawn new threads or converge many threads to one. The aim of nuclear computation is to take advantage of threading abilities of modern multi-core processors where the trend is to increase their hardware ability to compute more threads then their earlier generation processors.[1][2]

Nuclear computation focuses on real time processing for things like multimedia such as processing audio where a real time deadline (the sample rate in Hz) exists. For that reason it should not block and computational processes which alter shared memory must be atomic (executed in one clock cycle without locking).

Nuclear computation allows a computational thread to use thread fission to turn one thread into many or thread fusion to turn many threads into one.

Analogy to nuclear reactions

edit

As the name "nuclear computation" implies, there is an analogy between nuclear reactions and nuclear computation.

The nuclear fission analogy

edit

In nuclear physics, atoms decay or react where the atom's nucleus splits, producing several atoms. In nuclear computation, a computational thread splits into several processing threads.

The nuclear fusion analogy

edit

In nuclear physics, atoms may react together to fuse where several atomic nuclei may fuse into one nucleus. In nuclear computation, several computational threads fuse into one processing thread.

Component analogy

edit
Nuclear computation Nuclear physics
processing thread atomic nucleus
signalling and memory copy (between threads) energy release (from the nuclear reaction between nucleii)

Speed

edit

Nuclear explosions are fast and lockless[vague]. Which suggests some requirements:[citation needed]:

  • lockless
  • parallel
  • ordered
  • light weight
  • low latency

Description

edit

Thread fission

edit

Conceptually fission computation can cause a chain reaction, where one thread can signal many threads to start processing and they too may signal other threads to start processing. It is possible to starve the computer, where the computer runs out of resources and halts - either due to a lack of memory, power or disk resources.

Thread fusion

edit

Fusion computation is a type of threshold triggered computation, where several threads signal the single waiting thread, which begins execution once the required number of thread signals exceed the threshold of the waiting thread.

Implementation examples

edit
Link Programming language License
Nuclear processing C++ Free license with sticky copyright

History

edit

A previous analogy between nuclear reactions and computation were termed loop fission and fusion which were forms of compiler preprocessing. Loop fission (loop distribution) allowed one computational loop to be broken into separate loops by a compiler at compile time. Loop fusion (loop jamming) allowed many computational loops to be combined into one by the compiler at compiler time. These processes were not directly under the control of the programmer and were decided and controlled by the compiler. In contrast to loop fission and fusion, nuclear computation fission and fusion are directly under the control of the programmer or the program at run time.

See also

edit

References

edit
  1. ^ Howard, Jason, et al. "A 48-core IA-32 message-passing processor with DVFS in 45nm CMOS." Solid-State Circuits Conference Digest of Technical Papers (ISSCC), 2010 IEEE International. IEEE, 2010.
  2. ^ Ferry, David, et al. "A real-time scheduling service for parallel tasks." Real-Time and Embedded Technology and Applications Symposium (RTAS), 2013 IEEE 19th. IEEE, 2013.