liuyuqi-dellpc 7 years ago
parent
commit
7dbe1b4108

+ 7 - 0
README.md

@@ -2,6 +2,13 @@
 
 
 2018年阿里巴巴全球调度算法大赛项目
 2018年阿里巴巴全球调度算法大赛项目
 
 
+## 项目简单介绍
+共约6K台宿主机(machine),包含了若干种型号,约68K个任务实例(instance),其中一部分已经部署在宿主机上,还有一部分没有被部署。
+
+要求: 设计调度算法,在满足要求约束的前提下,通过将全部未被调度的任务实例调度到宿主机上以及腾挪部分已经部署的实例的方式,得到最优的部署方案。最优部署方案指实际使用宿主机数目尽可能少,且宿主机负荷不能过高。
+
+项目地址:
+https://tianchi.aliyun.com/competition/information.htm?spm=5176.100067.5678.2.734b3b95rp1Lhx&raceId=231663
 
 
 ## python环境:
 ## python环境:
 ```angular2html
 ```angular2html

+ 35 - 18
code/main.py

@@ -7,30 +7,47 @@
 '''
 '''
 
 
 # 数据预览
 # 数据预览
+import pandas as pd
 from configparser import ConfigParser
 from configparser import ConfigParser
 
 
 import libs.save_conf
 import libs.save_conf
 
 
+class Scheduling():
+    sb=[]
+    df3=None
+    
+    def init(self,name,gender,birth,**kw):
+        self.name = name
+        self.gender = gender
+        self.birth = birth
+        for k,v in kw.iteritems() :
+            setattr(self,k,v)
+        self.import_data()
+
+    def import_data():
+        df3=pd.read_csv("app")
 
 
 # step1: 数据参数初始化
 # step1: 数据参数初始化
-def getConfig():
-    cf = ConfigParser()
-    config_path = "../conf/config.ini"
-    section_name = "data_file_name"
-    cf.read(config_path)
-
-    app_interference = cf.get(section_name, "app_interference")
-    app_resources = cf.get(section_name, "app_resources")
-    instance_deploy = cf.get(section_name, "instance_deploy")
-    machine_resources = cf.get(section_name, "machine_resources")
-
-
-def init_conf():
-    '''
-    初始化配置文件
-    :return:
-    '''
-    libs.save_conf.write()
+    def getConfig(self):
+        cf = ConfigParser()
+        config_path = "../conf/config.ini"
+        section_name = "data_file_name"
+        cf.read(config_path)
+
+        app_interference = cf.get(section_name, "app_interference")
+        app_resources = cf.get(section_name, "app_resources")
+        instance_deploy = cf.get(section_name, "instance_deploy")
+        machine_resources = cf.get(section_name, "machine_resources")
+
+
+    def init_conf(self):
+        '''
+        初始化配置文件
+        :retur
+        '''
+        libs.save_conf.write()
+
+    def sort_dynamic(self):
 
 
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':

+ 1 - 0
code/sort_by_disk.py → code/sort_static.py

@@ -2,6 +2,7 @@
 # -*- coding: utf-8 -*-
 # -*- coding: utf-8 -*-
 """
 """
 按照磁盘占用率从大到小装箱,即按照磁盘先用完为止进行分配实例到主机。
 按照磁盘占用率从大到小装箱,即按照磁盘先用完为止进行分配实例到主机。
+这里静态部署,即重新部署所有实例,由于原来主机已经部署了一半实例,所以还不能静态部署!
 @Auther :liuyuqi.gov@msn.cn
 @Auther :liuyuqi.gov@msn.cn
 @Time :2018/7/7 0:43
 @Time :2018/7/7 0:43
 @File :sort_by_disk.py
 @File :sort_by_disk.py

+ 5 - 0
java/com/aliyun/tianchi/mgr/evaluate/evaluate/file/evaluator/AlibabaSchedulerEvaluatorRun.java

@@ -309,6 +309,11 @@ public class AlibabaSchedulerEvaluatorRun {
         
         
         InputStream problem;
         InputStream problem;
         InputStream result;
         InputStream result;
+//        app_resources.csv 
+//        machine_resources.csv 
+//        instance_deploy.csv 
+//        app_interference.csv 
+//        result.csv
         if (args.length == 5) {
         if (args.length == 5) {
             // 将赛题拼成评测数据
             // 将赛题拼成评测数据
             StringBuffer sb = new StringBuffer();
             StringBuffer sb = new StringBuffer();

+ 10 - 0
java/me/yoqi/servermanager/Main.java

@@ -0,0 +1,10 @@
+package me.yoqi.servermanager;
+
+public class Main {
+
+	public static void main(String[] args) {
+		// TODO 自动生成的方法存根
+
+	}
+
+}

+ 0 - 0
code/desc.sas → sas/desc.sas