1.一种利用GPU快速设计航路网络拓扑结构的方法,其特征在于:包括如下步骤:
1)初始化航路网络种群和进化算法初始参数;
2)创建和分配GPU全局内存和静态内存;
3)CPU调用GPU内核函数INIT将初始数据写入到GPU全局内存和静态内存;
4)判断迭代是否结束,如果不结束则进入步骤5),如果结束则将数据从GPU全局内存传输至系统内存并打印输出;
5)CPU调用GPU内核函数EA,GPU开始生成新的子种群,即新的航路网络结构,而CPU则等待GPU内核函数EA运行直至其结束;所述的GPU内核函数EA用于读取NP个种群个体数据并使用交叉和变异操作生成新的NP个子种群个体;所述的GPU内核函数EA总共有NP个线程块,每个线程块内共有n个线程,n为航路汇聚点数目,即每个线程块对应一个种群个体,每个线程对应一个种群个体中的一个航路汇聚点经纬度坐标,GPU内核函数EA同时处理NP个种群个体的n个航路汇聚点;
6)CPU调用GPU内核函数FLOW,为GPU内核函数EA生成的子种群的每个个体分配航班流量;GPU内核函数FLOW主要负责为内核函数EA生成的子种群的每个个体分配航班流量;该内核函数调用Nvidia提供的最短路径求解的库函数nvGRAPH;通过该库函数得到两两机场对的最短路径以后存储至GPU全局内存中,FLOW内核函数设计有f个线程,其中每个线程对应一个航班,即f个航班并行更新航路网络的流量分布;具体来说每个线程读取其对应航班的起飞降落机场的最短路径,航段连接数据和汇聚点位置数据,然后以对该航班所经过的航段进行流量叠加的方式更新航路网络流量矩阵;
7)CPU分别启动GPU内核函数最小化航路网络运行成本TAC和GPU内核函数最小化航路汇聚点飞行冲突系数TFCC,得到相应的目标函数值;
所述的GPU内核函数TAC和TFCC均各自有NP个线程块,每个线程块内共有n个线程,n为航路汇聚点数目,即每个线程块对应一个种群个体,每个线程对应一个种群个体中的一个航路汇聚点经纬度坐标,GPU内核函数TAC和TFCC均同时处理NP个种群个体的n个航路汇聚点;
所述的步骤7)通过调用两个CUDAstream实现,在两个stream上分别启动GPU内核函数TAC和GPU内核函数TFCC,两个GPU内核函数可以同时并行执行;8)CPU同步数据;
9)CPU结束数据同步以后,航路网络子种群数据被转移至系统内存,CPU调用非支配排序,将新生成的子种群和当前种群合并生成新一代的种群;
10)进入步骤4)。
2.根据权利要求1所述的利用GPU快速设计航路网络拓扑结构的方法,其特征在于:所述的GPU内核函数INIT用于将系统内存中的相关数据转移至GPU的全局或静态内存中。
3.根据权利要求1或2所述的利用GPU快速设计航路网络拓扑结构的方法,其特征在于:
所述的GPU内核函数INIT将所有可变的可读写数据存储至全局内存,将不可变的只读数据存储至静态内存。
4.根据权利要求1所述的利用GPU快速设计航路网络拓扑结构的方法,其特征在于:将计算量大的进化算法步骤和航路网络拓扑评估部分部署在GPU上;而将非支配排序,GPU内核函数主控放于CPU上,CPU和GPU通过数据同步进行信息交互。