紧接上一篇,本周的试验中,如何为Bcube拓扑结构生成一个邻接矩阵,收工输入显然是不现实的,虽然Bcube拓扑的节点规模不是很大,但是怎么说也有好几千个。然后我就想利用Bcube递归定义的特点来生成一个拓扑关系,但是没想出来。哪位大神有过类似的工作请联系我...再然后,我发现Bcube是一个规整的结构。可以推导出一个纯数学的公式,来算出节点间的拓扑关系,下面的代码以Bcube(4,3)为例。
Bcube中,server有1024个,switch分为4层,每层256个,一共也是1024个,每个switch都连接4个server。具体见下面的代码
public class BcubeBuilder {
/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws Exception {
Server[] Allser = new Server[1024];
for(int i = 0 ; i < 1024 ; i++){
Server ser = new Server();
ser.name = i+"";
Allser[i] = ser;
}
Switches[] Allsw = new Switches[1024];
for(int i = 0 ; i < 1024 ; i++){
Switches sw = new Switches();
sw.name = i+"";
Allsw[i] = sw;
}
//第一层交换机
for(int i=0 ; i<1024 ; i++){
Allser[i].relate.add(i/4+"");
Allsw[i/4].related.add(i+"");
}
//第二层交换机(b1)
int ser = 0 , swit = 0;
while(ser<=1008){
for(int i = 0 ; i<16 ; i++){
Allser[ser+i].relate.add(256+swit+i%4+"");
Allsw[256+swit+i%4].related.add(ser+i+"");
}
ser = ser+16;
swit = swit+4;
}
//第三层交换机(b2)
ser = 0;
swit = 0;
while(ser<=1008){
for(int i=0 ; i<64 ; i++){
Allser[ser+i].relate.add(512+swit+i%16+"");
Allsw[512+swit+i%16].related.add(ser+i+"");
}
ser = ser+64;
swit = swit+16;
}
//第三层交换机(b3)
ser = 0;
swit = 0;
while(ser<=1008)
{
for(int i=0 ; i<256 ; i++){
Allser[ser+i].relate.add(512+256+swit+i%64+"");
Allsw[512+256+swit+i%64].related.add(ser+i+"");
}
ser = ser+256;
swit = swit+64;
}
OutputStream iwrite = new FileOutputStream("Bcube44.properties");
Properties pwrite = new Properties();
String key = "";
String value = "";
for(int i=0 ; i<1024 ; i++){
key = "r-"+Allser[i].name;
value = "";
//System.out.println(Allser[i].relate.size());
for(int j=0 ; j<Allser[i].relate.size() ; j++){
value+="h-"+Allser[i].relate.get(j)+",";
}
pwrite.put(key,value.substring(0, value.length()-1));
}
key = "";
for(int i=0 ; i<1024 ; i++){
key = "h-"+Allsw[i].name;
value = "";
for(int j=0 ; j<Allsw[i].related.size() ; j++){
value+="r-"+Allsw[i].related.get(j)+",";
}
pwrite.put(key, value.substring(0, value.length()-1));
}
pwrite.store(iwrite, "set");
}
}
生成的邻接矩阵,我是用一个properties文件存储的,如有需要,请留下邮箱
分享到:
相关推荐
在数据中心网络(DCN)中,为了实现BCube拓扑与基于环的应用的对接,利用互连网络与组合数学的知识,研究了在BCube中嵌入环(ring)结构的问题,提出了基于最小异维环组和递归化的算法。该算法找到了BCube(n,k)(n为...
chord 网络拓扑生成器 文件格式的转换、合并
用户对于网管自动化拓扑的需求,主要包括支持设备全面、自动高效地生成拓扑、体现中间件/数据库连接关系、支持特殊的拓扑操作实现。针于网管自动化拓扑的需求,智和网管平台提出了自动化拓扑解决方案,通过网管平台...
dude网络拓扑生成dude网络拓扑生成dude网络拓扑生成dude网络拓扑生成
这是由测绘编程网出品的学生学习用的拓扑生成源码
使用C#(VS2010)编写的“GIS拓扑生成”。给定【节点-弧拓扑表】,生成【弧-面】【面-弧】【弧-节点】三张拓扑表。压缩包内包含源程序以及使用说明:数据格式、源代码、操作步骤。
基于Web的网络拓扑图生成方法的研究和实现.pdf
一种基于GPS轨迹的道路拓扑生成方法.pdf
基于DEM的流域产汇流分区生成与拓扑构建方法研究,张云姣,张行南,传统的基于DEM进行水文分析的算法研究都是以小流域为研究对象的。在分布式水文模型的应用愈来愈广泛的趋势下,以小流域为研究对象
vc2002开发的简单拓扑生成程序,有很高的参考价值
多约束条件下互联网骨干网路由器级拓扑生成方法.pdf
网络游戏-可容错的专用片上网络拓扑生成方法.zip
VNTGM:面向大规模网络安全实验的虚拟网络拓扑生成方法.pdf
GIS多边形拓扑生成代码,表示多边形弧段节点的关系
网络功能虚拟化(NFV)将服务功能链(SFC)映射到...按照服务路径是否可分离,提出了两种最优备份拓扑的生成算法。仿真结果表明,最优备份拓扑在提高可靠性的基础上能够有效地减少备份带宽资源的消耗,提高资源利用率。
Heier(h3c模拟器拓扑生成器),很好的配合H3C模拟器使用
随机拓扑生成源码,用MATLAB软件仿真运行,只有源码,其他运行
根据ArcSDE提供的空间查询技术和拓扑关系谓词,提出了在ArcSDE平台下实现拓扑连接的三种方法,包括基于空间约束查询的拓扑连接方法(SCQTJ)、基于谓词的嵌套循环拓扑连接方法(PNLTJ)和过滤精化两阶段拓扑连接方法...
gt-itm 网络拓扑生成工具的安装步骤详解!!!