RNG, R, mclapply และคลัสเตอร์คอมพิวเตอร์


10

ฉันใช้การจำลองใน R และคลัสเตอร์คอมพิวเตอร์และมีปัญหาดังต่อไปนี้ ฉันใช้งานคอมพิวเตอร์ X แต่ละเครื่อง:

fxT2 <- function(i) runif(10)
nessay <- 100
c(mclapply(1:nessay, fxT2), recursive=TRUE)

มีคอมพิวเตอร์ 32 เครื่องแต่ละเครื่องมี 16 คอร์ อย่างไรก็ตามประมาณ 2% ของตัวเลขสุ่มนั้นเหมือนกัน คุณจะใช้กลยุทธ์อะไรเพื่อหลีกเลี่ยงปัญหานี้?

ฉันสามารถหลีกเลี่ยงปัญหานี้สำหรับ fxT2 โดยการตั้งเวลาแฝง (เช่นการหน่วงเวลาวินาทีที่แต่ละงานถูกส่งไปยังคอมพิวเตอร์ X แต่ละเครื่อง) แต่ดูเหมือนว่าจะเป็นโฆษณาสำหรับ fxt2

ปัญหาคือว่าในความเป็นจริง fxT2 เป็นงานที่ยาวนานที่เกี่ยวข้องกับการสุ่มตัวเลขหลอก ในตอนท้ายของกระบวนการฉันคาดว่าจะได้รับการทำสำเนา X * nessay จากการทดลองทางสถิติแบบเดียวกันไม่ใช่การทำซ้ำแบบ nessay วิธีการตรวจสอบให้แน่ใจว่าเป็นกรณีนี้และมีวิธีการตรวจสอบนี้หรือไม่?


คำถามที่ดี. ดูคำถามนี้เกี่ยวกับตัวเลขสุ่มและแพ็คเกจแบบมัลติคอร์
csgillespie

@CSgillepsie:> ขอบคุณสำหรับตัวชี้ แต่ฉันไม่แน่ใจว่ามันเป็นปัญหาเดียวกัน: วิธีที่ฉันเข้าใจคำถามที่คุณชี้ไปกระบวนการทั้งหมดจะเกิดจาก mclapply ที่นี่มันแตกต่างกันเล็กน้อย: ในแต่ละเครื่องกระบวนการทั้งหมดเกิดโดย mclapply แต่นี่ไม่ใช่กรณีข้ามเครื่อง
user603

คำตอบ:


6

หิมะได้รับการสนับสนุนอย่างชัดเจนเพื่อ initialise จำนวนที่กำหนดของ RNG ลำธารในการคำนวณคลัสเตอร์

สามารถใช้หนึ่งในสองการใช้งานของ RNG:

มิฉะนั้นคุณต้องประสานงานด้วยมือ


3

คุณต้องใช้ RNG ที่ออกแบบมาเป็นพิเศษสำหรับการคำนวณแบบขนาน ดู "การประมวลผลแบบขนาน: หมายเลขสุ่ม" ของคอมพิวเตอร์ประสิทธิภาพสูงงานดู


คุณต้องประสานงานระหว่างสตรีม RNG ด้วย หิมะทำเช่นนั้นมัลติคอร์อาจเดี๋ยวนี้
Dirk Eddelbuettel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.