Isulat ang maliit na assembly sa isang grid ng CPU na nagpapasa ng mga halaga sa kanilang mga kapitbahay, na nagbabago ng input stream patungo sa target nang hindi nagdudulot ng deadlock.
Paano maglaro
I-program mo ang isang grid ng napakaliit na kompyuter. Bawat node ay may sariling maikling listahan ng mga utos at maaari lamang makipag-ugnayan sa mga kapitbahay na nasa tabi nito, na nagpapasa ng mga halaga sa pamamagitan ng mga port — kaya ang isang numero na kailangang lumampas sa grid ay dapat ipasa nang may kamay, node by node.
Bawat node ay may accumulator at ilang utos: ilipat ang halaga, dagdagan, bawasan, jump.
Maaaring basahin o isulat ng isang node sa kapitbahay na nasa itaas, ibaba, kaliwa, o kanan, o sa mga input at output streams.
Ang mga port ay naka-block. Ang isang node na nagsusulat sa kanan ay naghihintay lamang hanggang sa basahin ng node sa kanan nito ang kanyang kaliwa.
Ibig sabihin, kailangang magkasundo ang dalawang node sa oras, hindi lang sa halaga.
Kung isang buong cycle ang lumipas na walang nagpapaunlad at may naghihintay pa rin, ang grid ay naka-deadlock.
Naibalot ang puzzle kapag ang output stream ay tumutugma sa target na hinihingi ng antas.
Mga Kontrol
Desktop: I-type ang code sa text box ng bawat node, pumili ng antas mula sa dropdown, tapos pindutin ang Run
Phone & tablet: Gumagana, ngunit lubos na inirerekomenda ang external keyboard para sa pagsulat ng code
Mga Mode ng Laro
Daily: Isang iisang puzzle na may seed mula sa petsa ng ngayon
Practice: I-cycle ang mga bagong randomized inputs gamit ang button na New
Mga Tip at Estratehiya
Disenyo muna ang ruta bago ang arithmetic. Karamihan sa mga pagkakamali ay mga halagang hindi makararating kung saan sila kailangan, hindi mga sum na mali ang resulta.
Ang dalawang node na naghihintay sa isa't isa ay ang klasikong deadlock. Kung parehong nagsusulat patungo sa isa't isa bago magbasa ang alinman, walang magagalaw.
Panatilihing daloy ang traffic sa isang direksyon kung kaya. Mas madali mag-isip ang grid na may konsistenteng direksyon kaysa sa may mga halagang nagkakasalo.
Gamitin ang isang node bilang purong relay kapag kinakailangan. Ang pagiging walang ginagawa kundi ang pagpapasa ng halaga ay isang lehitimo at madalas na kailangang trabaho.
Basahin ang naka-block na node, hindi ang maling sagot. Kapag huminto ang output, ang makabuluhang bagay ay aling node ang naghihintay at para sa sino.
Ano ang matututunan mo
Ang Node Network ay isang parallel-programming puzzle tungkol sa pagpapasa ng mensahe at pag-iwas sa deadlock sa isang mesh ng mga processor.
Mga Kakayahan: parallel at concurrent programming, pagpapasa ng mensahe, pag-iwas sa deadlock
Pinakamainam para sa: mga Grade 9–12 (edad 14 pataas)
Para sa mga magulang at guro: concurrency at deadlock, hands-on.
Pinagmulan
Isang grid ng napakaliliit na kompyuter, bawat isa ay nagpapatakbo ng sarili nitong maikling listahan ng instruksyon at nakakausap lamang ang mga katabi nito, ay TIS-100 — Zachtronics, Hulyo 2015 — na itinakda ang mga puzzle nito sa isang kathang-isip at sirang makina ng dekada 1970.
Ang limitasyong itinuturo ay tunay at sentral sa parallel computing: kung walang shared memory, ang halagang kailangang tumawid sa grid ay dapat ipasa nang manu-mano, node sa node, sa pamamagitan ng message passing.
At ang manu-manong pagpapasa ang paraan upang makatagpo mo ang deadlock — dalawang node na naghihintayan, parehong nakahinto magpakailanman. Bug ito na hindi talaga maipaliliwanag sa whiteboard, dahil ang buong hirap ay tama ang pag-uugali ng bawat node nang indibidwal.
Tungkol sa Node Network
Ang Node Network ay isang parallel-programming puzzle tungkol sa pagpapasa ng mensahe at pag-iwas sa deadlock sa isang mesh ng mga processor. Ito ay isang orihinal, libreng browser game na ginawa sa loob para sa PlayPendium.