Programe dois braços que giram para sempre e funcionam em sincronia, montando registros de dados – e então corra para fazer isso em menos ciclos.
Construa listas de instruções para dois braços (A e B). Cada ciclo, ambos os braços executam uma instrução e depois fazem um loop. Read puxa os valores de feed para slots de bancada, Grab coloca um na garra, Combine anexa-o ao registro e Output emite um registro finalizado. Atenda às especificações e otimize.
Reactor Lines é um quebra-cabeça de otimização de programação paralela sobre a coordenação de dois loops simultâneos sem conflito.
Dois braços, cada um executando uma instrução por ciclo e depois repetindo, é a forma de uma máquina de troca de mensagens, e o mesmo território que TIS-100 explora: concorrência sem memória compartilhada.
As leituras puxam valores para compartimentos da bancada, então os braços precisam concordar quanto ao tempo sem poder perguntar nada um ao outro.
Obter esse acordo por construção, e não por negociação, é o que torna a programação concorrente difícil. Os dois braços estão corretos isoladamente; o bug, quando aparece, é que eles estão corretos no mesmo instante.
Reactor Lines é um quebra-cabeça de otimização de programação paralela sobre a coordenação de dois loops simultâneos. É um jogo de navegador original e gratuito desenvolvido internamente para o PlayPendium.