Archive

Archive for March, 2010

การ Live Migration ภายในเครื่อง

March 25, 2010 Leave a comment

การทำการ Live Migration ภายในเครื่องนั้นมีขั้นตอนดังนี้

1. เริ่มต้นด้วยการเปิดเครื่องปลายทางด้วยคำสั่ง kvm -m 512 host.img -incoming tcp:0.0.0.0:8000 โดย

  • -m 512 หมายถึงให้เปิดเครื่องโดยกำหนด memory ไว้ที่ 512 MB (ใส่หรือไม่ใส่ก็ได้)
  • host.img อิมเมจไฟล์ของเครื่องที่จะทำการย้าย
  • -incoming tcp:0.0.0.0:8000 เป็นการบอกว่าจะทำการ migrate ผ่านทาง tcp ที่ ip 0.0.0.0 และ port 8000

เมื่อเปิดเครื่องสำเร็จ ตัวเครื่องจะอยู่ในสถานะ stopped รอการย้ายการทำงานมาที่เครื่อง

2. เปิดเครื่องที่จะทำการ Migrate โดยใช้คำสั่ง kvm -m 512 host.img เหมือนทำการเปิด virtual machine ปรกติ

3. ทดสอบการทำงานของการ Migrate ด้วยการเปิดโปรแกรม Siag บนหน้าจอ Desktop

4. เข้าสู่ command mode ของ kvm ด้วยการกด ctrl+alt+2

5. พิมพ์คำสั่ง migrate -d tcp:0.0.0.0:8000 ลงไปเพื่อเป็นการบอกว่าให้ทำการ migrate ไปที่ ip 0.0.0.0 และ port 8000

6. จากนั้นที่เครื่องปลายทางจะสังเกตุเห็นว่าการทำงานของเครื่องต้นทางถูกย้ายมาทำงานที่เครื่องปลายทาง สังเกตุได้จากโปรแกรม Siag ที่ได้เปิดเอาไว้ก่อนทำการ migrate

Categories: Virtualization Tags: , ,

เว็บไซต์ทุนเรียนต่อ

March 13, 2010 Leave a comment
ช่วงนี้กำลังวางแผนว่าจะเรียนต่อหรือทำงานดี ก็เลยลองๆหาทุนดู
 
กลัวจะลืมเลยเอาเว็บไซต์มาแปะไว้ในนี้แล้วกัน
 
 
Categories: Uncategorized

การใช้งาน MPI บน Microsoft Visual Studio 2008

March 13, 2010 Leave a comment

วิธีนี้ใช้ได้กับโปรแกรม Microsoft Visual Studio 2008 เพื่อเอาไว้ทดสอบการเขียนโปรแกรม MPI บนวินโดวส์

1. ก่อนอื่นทำการดาวน์โหลด HPC Pack 2008 SDK จากลิงค์ http://www.microsoft.com/downloads/details.aspx?FamilyID=12887DA1-9410-4A59-B903-693116BFD30E&displaylang=en และติดตั้งโปรแกรม

2. เปิดโปรแกรม Microsoft Visual Studio 2008 สร้างโปรเจคใหม่ โดยเลือกที่ Visual C++ >> Win32 และเลือกรูปแบบโปรเจคเป็น Win32 Console Application ใส่ชื่อของโปรเจคที่ต้องการที่ช่อง Name ด้านล่าง



3. เมื่อเลือกที่ Win32 Console Application แล้วกด OK จะปรากฏหน้าต่างใหม่ขี้น ให้กดปุ่ม Next > และเลือกเช็ค Precompiled header ออก แล้วจึงกด Finish



4. หลังจากสร้างโปรเจคเสร็จแล้ว ให้คลิกขวาที่โปรเจคและเลือกที่ Properties  เลือกเมนูในส่วนของ Configuration Properties >> C/C++ >> General และเพิ่มพาธของที่อยู่เฮดเดอร์ไฟล์ โดยปกติแล้วจะอยู่ที่ C:\Program Files\Microsoft HPC Pack 2008 SDK\Include ในช่อง Additional Include Directories



5. เลือกเมนู Configuration Properties >> Linker >> General และใส่พาธของที่อยู่ไลบรารี ซึ่งปกติจะอยู่ที่ C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\i386 ในช่อง Additional Library Directories



6. เลือกเมนู Configuration Properties >> Linker >> Input  และพิมพ์ msmpi.lib ในช่อง Additional Dependencies



7. เลือกเมนู Configuration Properties >> Linker > System และในช่อง SubSystem ให้เลือกเป็น Console(/SUBSYSTEM:CONSOLE)



8. ทดสอบโปรแกรมโดยพิมพ์โค้ดดังต่อไปนี้

#include <stdio.h>
#include <mpi.h> 

int main(int argc, char* argv[])
{
	int rank, size;

	MPI_Init(&argc, &argv);
	MPI_Comm_size(MPI_COMM_WORLD, &size);
	MPI_Comm_rank(MPI_COMM_WORLD, &rank);

	if(rank==0){
		printf("Hello Kitty form root\n");
	}
	else{
		printf("Hello Kitty from rank %d\n", rank);
	}

	MPI_Finalize();

	return 0;
}

9. Build โปรแกรมด้วย Build >> Build Solution แล้วรันโปรแกรมด้วยการออกคำสั่ง mpiexec -n 10 programname.exe (อยู่ในโฟลเดอร์ Debug หลังจาก build เสร็จ) จะได้ผลลัพท์ดังนี้

ข้อควรระวัง : ทุกครั้งที่ใช้ฟังก์ชัน printf() ต้องเพิ่มคำสั่ง fflush (stdout); ตามไปด้วยเสมอ (เป็นบัคที่มาจากการ Implement MPI ของ Microsoft)

แหล่งข้อมูลเพิ่มเติม

http://blogs.msdn.com/risman/archive/2009/01/04/ms-mpi-with-visual-studio-2008.aspx

http://www.cs.utah.edu/~delisi/vsmpi/

http://www.oerc.ox.ac.uk/resources/wcc/support/documentation/sub-documentation/mpi