Tiết kiệm năng lượng trong mạng

51 538 1
Tiết kiệm năng lượng trong mạng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu tham khảo công nghệ thông tin Tiết kiệm năng lượng trong mạng

Báo cáo Project 1 OptimizerMục LụcI.Tổng quan về chương trình . 2 1. Mục đích của chương trình: 2 2. Giới thiệu chung về Optimizer và thuật toán sử dụng 2 3. Giới thiệu chung về chương trình . 2 1.Khối nhập dữ liệu đầu vào . 6 2. Khối tạo ma trận bit rate . 7 3. Khối tạo ma trận công suất . 9 4. Khối tạo ma trận kết nối . 11 5. Khối tạo 3 ma trận thể hiện kết nối 13 6. Khối tìm đường cho kết nối . 21 7. Khối sắp xếp đường đi 29 8.Khối kiểm tra đường đi 30 9. Khối cập nhật dung lượng hệ thống . 33 10.Khối tạo cây . 34 11. Khối in kết quả: . 48 1 Báo cáo Project 1 OptimizerI.Tổng quan về chương trình1. Mục đích của chương trình:Hiện nay vấn đề tiết kiệm năng lượng đang được đặt ra như một vấn đề thiết yếu trong tất cả các lĩnh vực của cuộc sống. Trong việc quản lí và sử dụng Data Center vấn đề này càng cần thiết hơn vì nhiều lúc(nhất là vào ban đêm, giờ thấp điểm) số lượng yêu cầu kết nối rất nhỏ trong khi tất cả các chuyển mạch vẫn hoạt động gây ra sự lãng phí không đáng có. Chính vì thế chúng em thực hiện chương trình này mong muốn có thể tối ưu hóa hệ thống hết mức có thể mà vẫn đáp ứng được nhu cầu của người dùng, qua đó có thể tiết kiệm được công suất sử dụng.Để thực hiện quá trình này thì vấn đề Optimizer là vô cùng cần thiết. 2. Giới thiệu chung về Optimizer và thuật toán sử dụngOptimizer là quá trình tối ưu hóa sơ đồ hệ thống(Topology) từ dạng phức tạp về dạng đơn giản hơn.Để thực hiện được điều đó chúng ta sử dụng thuật toán Greedybin-packing.Đối với thuật toán này chúng ta sẽ chọn đường cho các kết nối theo đường trái nhất giúp cho sơ đồ hệ thống được giảm thiểu3. Giới thiệu chung về chương trìnhChương trình bao gồm 11 khối chức năng chính được mô tả như hình vẽ phía dưới.Chương trình hoạt động theo các bước:• Nhập dữ liệu• Đọc các yêu cầu từ ma trận kết nối• Giải quyết yêu cầu bằng đường đi bên trái nhất. Nếu không giải quyết được yêu cầu(không tìm được đường đi hay các đường đi đã quá tải) thì thêm yêu cầu vào danh sách từ chối2 Báo cáo Project 1 Optimizer• In kết quả ra màn hình3 Báo cáo Project 1 OptimizerNhập các tham số đầu vào(1)Tạo 3 ma trận thể hiện kết nối(5)Tạo ma trận kết nối(4)Tạo ma trận bitrate(2)Tạo ma trận công suất(3)Duyệt ma trận kết nốiKết nối [i[j]!=0NOTìm đường cho kết nối [i][j](6)YESTìm được đường?NOSắp xếp đường đi(7)Vẽ cây(10)Duyệt đường đi theo thứ tự đã sắp xếpKiểm tra đường đi (8)Quá tải?NOCập nhật dung lượng hệ thống(9)YESThêm yêu cầu vào danh sách từ chốiYESTất cả các đường đi quá tải?YESNODuyệt hết ?IN KẾT QUẢ(11)NOYESGhi chú:Những liên kết không thể hiện trên hình vẽ :1)Khối tạo ma trận bit rate (2) là đầu vào cho khối tạo ma trận công suất(3) và khối vẽ cây(10)2)Khối tạo ma trận công suất (3) phục vụ cho quá trình in kết quả(11)3) Khối tạo 3 ma trận kết nối (5) phục vụ cho khối tìm đường (6)4 Báo cáo Project 1 OptimizerII. Các khối chức năng cụ thể của chương trình*)Các hàm phục vụ cho quá trình tính toán• Hàm tạo ma trận m hàng n cột với tất cả các phần tử bằng 0def taomt(m,n):# Khai báo hàm a=[]#Khởi tạo ma trận a rỗng i=0#Khai báo biến i j=0#Khai báo biến j for i in range(m):#i chạy từ 0 đến m-1 b=[]#Khai báo b rỗng a.append(b)#Thêm b vào a#Như vậy sau bước này ta có ma trận a có m hàng for i in range(m):#i chạy 0->m-1 for j in range(n):#j chạy 0-> n-1 a[i].append(0)#Thêm 0 vào hàng i để tạo ra cột#Như vậy sau bước này ta có ma trận m hàng n cột tất cả phần tử bằng 0 return a# Trả về a• Hàm tính xydef mu(x,y):#Khai báo hàm s=1#Khai báo s5 Báo cáo Project 1 Optimizer if y==0:#Nếu y=0 return 1#Trả về 1 else: for i in range(y):# s=s*x return(s)• Hàm add toàn bộ list y vào list xdef addlist(x,y): for i in range(len(y)): x.append(y[i]) return x1.Khối nhập dữ liệu đầu vàol=input("Nhap so server\n")n=input("Nhap so chuyen mach Top Of Rack\n")m=input("Nhap so chuyen mach tich hop\n")h=input("Nhap so chuyen mach loi (core)\n")f=input("Nhap so Top Of Rack toi da ket noi vao mot chuyen mach tich hop\n")e=input("Nhap so server toi da ket noi vao mot Top Of Rack\n")6 Báo cáo Project 1 Optimizerdl=float(raw_input("Nhap capacity cua he thong"))bitmin=float(raw_input("Nhap bitrate toi thieu cua cac ket noi"))bitmax=float(raw_input("Nhap bitrate toi da cua cac ket noi"))mi1=input("Nhap cong suat toi thieu cua tang chuyen mach loi")ma1=input("Nhap cong suat toi da cua tang chuyen mach loi")mi2=input("Nhap cong suat toi thieu cua tang chuyen mach tich hop")ma2=input("Nhap cong suat toi da cua tang chuyen mach tich hop")mi3=input("Nhap cong suat toi thieu cua tang chuyen mach Top Of Rack")ma3=input("Nhap cong suat toi da cua tang chuyen mach Top Of Rack")2. Khối tạo ma trận bit rate2.1 Ý nghĩa:Lưu bitrate của các yêu cầu kết nối2.2 Định dạng ma trậnMa trận gồm 1 hàng và l cột ( l là số server). Mỗi cột đại diện cho 1 server. Server nào phát đi yêu cầu thì giá trị của cột tương ứng trong ma trận sẽ có giá trị là bitrate của yêu cầu phát đi. Server nào không phát đi yêu cầu thì giá trị cột tương ứng trong ma trận sẽ có giá trị 0. Ví dụ: Có 5 server. Server 2,5 không phát yêu cầu. Server 1,3,4 phát yêu cầu với bitrate tương ứng là 0.1;0.3;0.2. ta có ma trận:7 Báo cáo Project 1 Optimizer0.1 0 0.3 0.2 0 2.3 Giải thuậtTa sẽ tạo ngẫu nhiên các yêu cầu kết nối theo cách:+) Tạo ngẫu nhiên 1 trong 2 số 1 và 0 tương ứng với hai trường hợp phát và không phát yêu cầu+) Nhân số đã tạo ở trên với 1 số ngẫu nhiên trong khoảng min-> max đã cho. Như thế:• Khi server phát yêu cầu ta sẽ có giá trị 1*x=x(x nằm trong khoảng min-> max)• Khi server không phát yêu cầu ta có giá trị 0*x=02.4 Thực hiệndef tao_bitrate(l,m1,m2):#Các tham số:#l: Số server#m1: bitrate min của yêu cầu#m2: bitrate max của yêu cầu i=08 Báo cáo Project 1 Optimizer a=taomt(1,l)#Tạo ma trận 1 hàng l cột for i in range (l): a[0][i]=random.randint(0,1)*random.uniform(m1,m2)#Lệnh random.randint(0,1) random ra 1 trong 2 số 0 hoặc 1#Lệnh random.uniform(m1,m2) random ra 1 số bất kì trong khoảng m1,m2 return a3. Khối tạo ma trận công suất3.1 Ý nghĩaLưu công suất trên từng chuyển mạch của hệ thống.Phục vụ cho quá trình tính toán công suất tiết kiêm được của hệ thống3.2Định dạng ma trậnMa trận gồm 3 hàng, n cột. Trong đó :Hàng 1 thể hiện công suất từng chuyển mạch lõi (core)Hàng 2 thể hiện công suất từng chuyển mạch tích hợpHàng 3 thể hiện công suất từng chuyển mạch top of rack Vì số core ,chuyển mạch tích hợp,top of rack là không như nhau nên ta tạo ma trận với số cột lớn nhất là n.Do đó với những phần tử dư ra trong từng hàng ta mặc định bằng 0.9 Báo cáo Project 1 OptimizerVí dụ: Hệ thống có 2 chuyển mạch lõi với công suất 180 và 185 W, 4 chuyển mạch tích hợp với công suất 150,152,151,154 W, 6 chuyển mạch top of rack với công suất 123, 125,122,127,124,128 W. Ta sẽ có ma trận công suất:180 185 0 0 0 0150 152 151 154 0 0123 125 122 127 124 1283.3 Giải thuậtTạo ma trận (3,n) với tất cả các phần tử bằng 0Hàng 1 nhập giá trị công suất của core bằng hàm randomHàng 2 nhập giá trị công suất của chuyển mạch tích hợp bằng hàm randomHàng 3 nhập giá trị công suất của top of rack bằng hàm randomVới các giá trị công suất min ,max được nhập qua các tham số mi1,ma1,mi2,ma2,mi3,ma33.4 Thực hiện#Hàm tạo ma trận công suấtdef tao_mtcs(h,m,n,mi1,ma1,mi2,ma2,mi3,ma3):# số core : h, số top of rack :m, số top of switch :n#mi1, ma1, mi2, ma2, mi3, ma3 lần lượt là công suất min, max của core, top of rack, top #of switch a=taomt(3,n)#tạo ma trận 3 hàng n cột10 [...]... thì yêu cầu này chiếm 1 phần dung lượng hệ thống do đó chúng ta phải cập nhật lại dung lượng của hệ thống 9.2 Thực hiện ktra=0 for k in range(len(mtd)):#Duyệt tập hợp đường if (kiemtra(mtd[k],mtdl,dl,ketnoi[i][j])==1):#Nếu kết nối ko quá tải yc.append(mtd[k])#Thêm yêu cầu vào ds yêu cầu được đáp ứng #Cập nhật dung lượng hệ thống #Cộng thêm dung lượng hiện thời với dung lượng link đầu vào(vị trí [i][j]... phải cộng vào dung lượng hiện thời 2 lần dung lượng link đầu vào do chuyển mạch đó được đi qua 2 lần else:#Nếu 2 phần tử nàyko trùng nhau k1=b[2][a[1]-1]+d#Cộng dung lượng link đầu vào cho cả 2 biến k1,k5 k5=b[2][a[5]-1]+d if(a[2]==a[4]):#Tương tự như trên k2=b[1][a[2]-1]+2*d k4=k2 else: k2=b[1][a[2]-1]+d k4=b[1][a[4]-1]+d k3=b[0][a[3]-1]+d #Đến đây ta đã có các biến k1=>k5 lưu dung lượng hệ thống sau... dung lượng link đầu vào if (k1>c):#Kiểm tra có chuyển mạch nào có dung lượng vượt quá capacity ko return 0#Nếu có trả về 0 tức đường đi sẽ quá tải nếu thêm liên kết if (k2>c): return 0 if (k3>c): return 0 32 Báo cáo Project 1 Optimizer if (k4>c): return 0 if (k5>c): return 0 return 1 #Nếu tất cả các chuyển mạch đều có dung lượng nhỏ hơn capacity sau khi thêm liên kết thì trả về 1 9 Khối cập nhật dung lượng. .. đường 8.3 Thực hiện def kiemtra(a,b,c,d): #Đầu vào: #a: Ma trận đường chứa đường đi gồm 7 chặng #b: Ma trận chứa dung lượng hiện thời của cả hệ thống #c: Capacity của hệ thống #d:Dung lượng kết nối #Ta sử dụng cac biến k1=>k5 để lưu dung lượng các chuyển mạch sau khi đã cộng thêm dung lượng kết nối đầu vào if (a[1]==a[5]):#Vì phần tử thứ 1 và thứ 5 đều thuộc tầng top of rack nên ta phải xét trường hợp... a[0][i]=random.randint(mi1,ma1) #tạo hàng công suất của core lấy giá trị random trong đoạn [mi1,ma1] for i in range(m): a[1][i]=random.randint(mi2,ma2) #tạo hàng công suất của core lấy giá trị random trong đoạn [mi2,ma2] for i in range(n): a[2][i]=random.randint(mi3,ma3) #tạo hàng công suất của core lấy giá trị random trong đoạn [mi3,ma3] return a 4 Khối tạo ma trận kết nối 4.1 Ý nghĩa Ma trận kết... cầu, bao gồm: • Server nguồn • Server đích • Dung lượng yêu cầu 4.2 Định dạng ma trận 11 Báo cáo Project 1 Optimizer Ma trận bao gồm l hàng l cột với l là số server Các hàng tượng trưng cho server phát Các cột tượng trưng cho server thu.Tại vị trí [i][j] trong ma trận: • Nếu giá trị của ma trận khác 0 : tồn tại yêu cầu từ server i đến server j với dung lượng là giá trị của ma trận tại vị trí [i][j] •... 3 ma trận thể hiện cho 3 kết nối phải thể hiện Mỗi tầng có định dạng như sau: Ma trận thể hiện kêt nối giữa tầng i và tầng j Trong đó tầng i nằm phía trên tầng j Tầng i có a chuyển mạch, mỗi chuyển mạch ở tầng i nối với b chuyển mạch ở tầng j.Ta sẽ có ma trận a hàng b+1 cột trong đó: • Cột đầu tiên của mỗi hàng biểu diễn số thứ tự của chuyển mạch ở tầng i • Các cột từ thứ 2 đến hết của mỗi hàng thể... các chuyển mạch top of rack trong các đường đi này Sau đó duyệt ma trận kết nối tầng tích hợp-top of rack tìm các chuyển mạch tích hợp có kết nối đến chuyển mạch top of rack đã lấy ra ở trên Khi tìm thấy gán chuyển mạch vào ma trận đường đi • Làm tương tự với các tầng tiếp theo ta sẽ thu được một ma trận đường bao gồm các đường đi từ server a đến server b nào đó • Lọc ra trong ma trận trên những đường... nối 5.1 Ý nghĩa Ta nhận thấy rằng trong topology biểu diễn hệ thống không phải 2 chuyển mạch bất kì nào cũng nối với nhau, do đó chúng ta cần có những ma trận thể hiện sự kết nối giữa các tầng chuyển với nhau để khi tiến hành Optimizer chúng ta biết được những chuyển mạch nào có thể nối được với nhau và những chuyển mạch nào không nối với nhau 5.2 Định dạng ma trận Trong Topology hệ thống chúng ta thấy... thị - Tạo ra 1 giao diện trực quan biểu diễn cấu trúc topology gồm 4 tầng tương ứng với 4 chuyển mạch chức năng 10.2.Các công cụ hỗ trợ: - Phần mềm Python 2.7 34 Báo cáo Project 1 Optimizer -Tutorial về: Tkinter 8.4 reference: 1 công cụ để xây dựng giao diện cho Python và đã được tích hợp sẵn trong Python Link: http://infohost.nmt.edu/tcc/help/pubs/tkinter/ 10.3.Định dạng cây - Cây gồm có 4 tầng :tâng . chương trình:Hiện nay vấn đề tiết kiệm năng lượng đang được đặt ra như một vấn đề thiết yếu trong tất cả các lĩnh vực của cuộc sống. Trong việc quản lí và sử. thiết hơn vì nhiều lúc(nhất là vào ban đêm, giờ thấp điểm) số lượng yêu cầu kết nối rất nhỏ trong khi tất cả các chuyển mạch vẫn hoạt động gây ra sự lãng

Ngày đăng: 23/11/2012, 11:33

Hình ảnh liên quan

• Ta thấy trên hình chuyển mạch tích hợp thứ 1,2 sẽ được gán với e(e=4) chuyển mạch ở tầng dưới bắt đầu từ chuyển mạch 1,3 .Nếu đặt x là số thứ  tự chuyển mạch ở tầng trên ( tầng i) thì ta có vị trí đầu tiên được gán của  một chuyển mạch ở tầng i là:(x-1) - Tiết kiệm năng lượng trong mạng

a.

thấy trên hình chuyển mạch tích hợp thứ 1,2 sẽ được gán với e(e=4) chuyển mạch ở tầng dưới bắt đầu từ chuyển mạch 1,3 .Nếu đặt x là số thứ tự chuyển mạch ở tầng trên ( tầng i) thì ta có vị trí đầu tiên được gán của một chuyển mạch ở tầng i là:(x-1) Xem tại trang 19 của tài liệu.
*Bước 2:Tạo hình chữ nhật cho node - Tiết kiệm năng lượng trong mạng

c.

2:Tạo hình chữ nhật cho node Xem tại trang 36 của tài liệu.
Trên hình ta thấy: - Tiết kiệm năng lượng trong mạng

r.

ên hình ta thấy: Xem tại trang 47 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan