Skip to content
Hüseyin Tuğrul BÜYÜKIŞIK edited this page Jul 2, 2023 · 2 revisions

Welcome to the UfSaCL wiki!

The term simulated-annealing is attributed to a procedure that had been used in sword-making that made swords more durable for wars.

When hot metal is taken out of template, it is in its highest(starting) temperature with atoms ready to move even with a slight external factor. Hammer is this external factor. When hammer hits the metal, atoms displace randomly to their neighboring positions. But sometimes, some of them are displaced to a position that is less energetic for the total system. This means it will be harder to move those atoms once the metal cools a bit.

Continuously hitting the metal with hammer while it is slowly cooling makes atoms find even better places for (positional)stability and become even more durable against external factors.

Once the minimum temperature (room temperature?) is achieved, the sword has lower total potential energy that keeps atoms in place. This process can be repeated as many times as possible until a criteria is met.

UfSaCL(Ultra-Fast Simulated-Annealing with OpenCL) is just another simulated-annealing tool that imitates this process, with GPUs and other accelerators (uses all of them to increase throughput) by running OpenCL kernels. It uses 256 workitems (gpu threads) per object(clone of current best states) to compute energy. If user wants 100000 objects in parallel, then it launches 25600000 gpu threads to compute all states.

Clone this wiki locally