อัลกอริทึมแบบขนาน (GPU) สำหรับออโตเซลลูมิเนียมแบบอะซิงโครนัส
ฉันมีคอลเลกชันของแบบจำลองการคำนวณที่สามารถอธิบายได้ว่าเป็นออโตมาติกเซลลูลาร์แบบอะซิงโครนัส แบบจำลองเหล่านี้มีลักษณะคล้ายกับรุ่น Ising แต่มีความซับซ้อนกว่าเล็กน้อย ดูเหมือนว่ารุ่นดังกล่าวจะได้ประโยชน์จากการใช้งานบน GPU แทนที่จะเป็นซีพียู น่าเสียดายที่มันไม่ตรงไปตรงมาที่จะขนานโมเดลดังกล่าวและมันก็ไม่ชัดเจนเลยสำหรับฉันเกี่ยวกับมัน ฉันรู้ว่ามีวรรณกรรมเกี่ยวกับเรื่องนี้ แต่ดูเหมือนว่าทั้งหมดจะมุ่งเป้าไปที่นักวิทยาศาสตร์คอมพิวเตอร์ที่ไม่ยอมใครง่ายๆที่สนใจในรายละเอียดของความซับซ้อนของอัลกอริทึมมากกว่าคนอย่างฉันที่ต้องการคำอธิบายสิ่งที่ฉันสามารถนำไปใช้ได้ ดังนั้นฉันพบว่ามันค่อนข้างจะไม่น่าสนใจ เพื่อความชัดเจนฉันไม่ได้มองหาอัลกอริธึมที่เหมาะสมที่สุดเท่าที่ฉันสามารถนำไปใช้ใน CUDA ได้อย่างรวดเร็วซึ่งมีแนวโน้มว่าจะเพิ่มความเร็วในการใช้งาน CPU อย่างมีนัยสำคัญ เวลาโปรแกรมเมอร์เป็นปัจจัย จำกัด มากกว่าเวลาคอมพิวเตอร์ในโครงการนี้ ฉันควรอธิบายด้วยว่าออโตเมติกเซลลูลาร์แบบอะซิงโครนัสค่อนข้างแตกต่างจากซิงโครนัสและเทคนิคในการซิงโครนัส CA แบบขนาน (เช่นชีวิตของคอนเวย์) ไม่สามารถดัดแปลงกับปัญหานี้ได้อย่างง่ายดาย ข้อแตกต่างคือ CA แบบซิงโครนัสจะอัปเดตทุกเซลล์พร้อมกันในทุกขั้นตอนในขณะที่อะซิงโครนัสหนึ่งจะอัปเดตภูมิภาคที่เลือกแบบสุ่มในทุกขั้นตอนตามที่อธิบายไว้ด้านล่าง แบบจำลองที่ฉันต้องการให้ขนานนั้นถูกนำไปใช้กับโครงตาข่าย (โดยปกติจะเป็นรูปหกเหลี่ยม) ประกอบด้วยเซลล์ประมาณ 100000 เซลล์ (แม้ว่าฉันต้องการใช้มากกว่านี้) และอัลกอริทึมที่ไม่ขนานกันสำหรับการใช้งานมันมีลักษณะดังนี้: เลือกคู่ของเซลล์ที่อยู่ใกล้เคียงโดยการสุ่ม คำนวณฟังก์ชัน "พลังงาน"ตามพื้นที่ใกล้เคียงรอบ ๆ เซลล์เหล่านี้Δ EΔE\Delta E ด้วยความน่าจะเป็นที่ขึ้นอยู่กับ (ด้วยพารามิเตอร์ a) ไม่ว่าจะสลับสถานะของเซลล์ทั้งสองหรือไม่ทำอะไรเลย βอี- βΔ Ee−βΔEe^{-\beta \Delta E}ββ\beta …