1.一種基于KVM的加速器虛擬化數(shù)據(jù)處理系統(tǒng),其特征在于,包括多個(gè)服務(wù)器,各服務(wù)器的主機(jī)中插有零到多個(gè)FPGA硬件加速器,各主機(jī)使用KVM技術(shù)創(chuàng)建多臺(tái)虛擬機(jī),所有的主機(jī)通過網(wǎng)絡(luò)形成一個(gè)集群,并共同維系一張包含所有服務(wù)器負(fù)載情況的負(fù)載表,當(dāng)主機(jī)接收到虛擬機(jī)發(fā)送的數(shù)據(jù)請(qǐng)求后,查詢本機(jī)及遠(yuǎn)端主機(jī)的負(fù)載情況,選擇相應(yīng)地區(qū)的FPGA硬件加速器進(jìn)行數(shù)據(jù)處理,使數(shù)據(jù)處理時(shí)間最小。
2.根據(jù)權(quán)利要求1所述的一種基于KVM的加速器虛擬化數(shù)據(jù)處理系統(tǒng),其特征在于,各主機(jī)通過網(wǎng)絡(luò)連接到infiniband交換機(jī),形成一個(gè)集群。
3.一種使用如權(quán)利要求1或2所述的調(diào)度系統(tǒng)進(jìn)行數(shù)據(jù)處理的方法,其特征在于,包括以下步驟:
S1,虛擬機(jī)向主機(jī)發(fā)送數(shù)據(jù)請(qǐng)求;
S2,主機(jī)接收數(shù)據(jù)請(qǐng)求,將其加入本地隊(duì)列,然后檢查本地硬件加速器是否空閑,若是,則進(jìn)入步驟S4,否則進(jìn)入步驟S3;
S3,計(jì)算本地處理請(qǐng)求所需的時(shí)間以及通過遠(yuǎn)端主機(jī)處理請(qǐng)求所需的最小時(shí)間,若前者小于后者,則進(jìn)入步驟S4,否則進(jìn)入步驟S5;
S4,數(shù)據(jù)請(qǐng)求從本地隊(duì)列轉(zhuǎn)移至本地硬件加速器的隊(duì)列進(jìn)行處理,處理完畢后,本地硬件加速器響應(yīng)虛擬機(jī);
S5,數(shù)據(jù)請(qǐng)求從本地隊(duì)列轉(zhuǎn)移至位于本地的遠(yuǎn)端隊(duì)列,等待對(duì)應(yīng)遠(yuǎn)端主機(jī)的硬件加速器進(jìn)行數(shù)據(jù)處理,處理完畢后,遠(yuǎn)端主機(jī)的硬件加速器響應(yīng)虛擬機(jī)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述的步驟S3中,通過遠(yuǎn)端主機(jī)處理請(qǐng)求所需的時(shí)間根據(jù)負(fù)載表計(jì)算,所述的負(fù)載表由各主機(jī)定期通過廣播更新。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述的步驟S3中,通過遠(yuǎn)端主機(jī)處理請(qǐng)求所需的時(shí)間為:遠(yuǎn)端主機(jī)處理數(shù)據(jù)時(shí)間+數(shù)據(jù)來回傳輸時(shí)間。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)主機(jī)未連接FPGA硬件加速器時(shí),該主機(jī)的負(fù)載為無窮大。