วันศุกร์ที่ 19 กุมภาพันธ์ พ.ศ. 2553

Game of Life #1 Sequential Program

หลักการทำงานของโปรแกรมแบบ Sequential
1. ณ จุดที่ cell หนึ่งๆ อยู่ ให้ทำการนับ cell ที่อยู่รอบตัว นั่นคือ 8 ทิศทาง
โดยใช้ฟังก์ชั่น check_arounj(i,j) แล้วเก็บค่าไว้ในตัวแปร num


2. นำค่าที่นับได้ มาเช็คเงื่อนไขในการชีวิตอยู่

- สำหรับเซลที่มีชีวิตอยู่แล้ว มีกฏการเปลี่ยนแปลงดังนี้
1. ถ้าเซลนั้นมีเซลที่มีชีวิตอยู่รอบข้างเพียงหนึ่งเซลหรือไม่มีเลย เซลนั้นจะตาย เพราะความเหงา
2. ถ้าเซลนั้นมีเซลที่มีชีวิตอื่นอยู่รอบข้างตั้งแต่ 4 เซลขึ้นไป เซลนั้นจะตายเพราะประชากรมากเกินไป
3. ถ้าเซลนั้นมีเซลที่มีชีวิตอื่นอยู่รอบข้าง 2 ถึง 3 เซล เซลนั้นจะมีชีวิตต่อไป
- สำหรับเซลที่ว่างอยู่ มีกฏการเปลี่ยนแปลงคือ
1. ถ้ามีเซลที่มีชีวิตอยู่รอบๆมัน 3 เซล เซลที่ว่างนั้นจะกลายเป็นมีชีวิต

แสดงค่าความเป็นไปได้ดังตาราง


3. ทำการบันทึกค่าลงตารางที่1(board1) แล้วจำลองการทำงานใน time step ต่อไปแล้วบันทึกลงตารางที่ 2(board2) ดังนั้นเวลาจะเปลี่ยนการแสดงผลก็ทำการสลับตารางกันโดยที่มีการตัวแปร temp มาช่วยสลับค่า

source code



compile program
พิมพ์คำสั่ง nvcc inputfile.cu –o outputfile



run program
พิมพ์คำสั่ง ./outputfile

ป้อนค่าเริ่มต้นโปรแกรมดังนี้
• ขนาดของตาราง Board สี่เหลี่ยมจัตุรัส [n]
• ค่า Ramdom Number [n]
• จำลองเวลาในการมีชีวิต Life Time [n]
• เลือกรูปแบบการจัดเก็บไฟล์ [1/2]
1. เก็บทุก Time Step อยู่ที่ไฟล์ RandomBoard.input
2. เก็บเฉพาะ Final Time Step อยู่ที่ไฟล์ Board.output



พิมพ์คำสั่งเพื่อดูข้อมูลในไฟล์
more RamdomBoard.input



แสดงผลลัพธ์เก็บในไฟล์




แหล่งที่เก็บ source code
server 61.91.208.65 under path //cs72102/par_seq.cu






ไม่มีความคิดเห็น:

แสดงความคิดเห็น