Chinaunix首页 | 论坛 | 博客
  • 博客访问: 401083
  • 博文数量: 77
  • 博客积分: 3149
  • 博客等级: 中校
  • 技术积分: 828
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-25 11:48
文章存档

2012年(5)

2011年(2)

2010年(11)

2009年(44)

2008年(15)

我的朋友

分类: LINUX

2009-08-28 12:44:29

 下面以Window版本为例说明GridSim的安装。

(1)安装准备工作

    在下载并安装J2SE,并配置好环境变量。
    从网站上可以下载gridsim的最新版本GridSim Toolkit 4.1,下来是一个zip的压缩包。


(2)Gridsim安装

    解压这个压缩包到一个位置(如:c:\).
    压缩包的文档结构图如下:
$gridsimtoolkit-4.1/               -- the current GridSim directory (top level)
    classes/            -- The GridSim class files
    doc/                -- GridSim and SimJava API Documentation
        eduni/
        gridsim/
    examples/           -- GridSim examples, see examples/README.txt for details
    jars/               -- jar archives
    source/             -- The GridSim Java source code
        gridsim/*.java
        gridsim/auction/*.java      -- framework for the auction model
        gridsim/datagrid/*.java     -- framework for the Data Grids model
        gridsim/filter/*.java       -- filters incoming events
        gridsim/index/*.java        -- framework for the Grid Info Service model
        gridsim/net/*.java          -- framework for the network model
        gridsim/resFailure/*.java   -- framework for the resource failure model
        gridsim/util/*.java         -- includes some statistics classes.
为了能计算机的任意位置能够使用到gridsim的类库我们设置一下classpath
.;E:\gridsimtoolkit\jars\gridsim.jar;E:\gridsimtoolkit\jars\simjava2.jar

(3)测试运行结果
测试文件是软件包中的$gridsimtoolkit-4.1\examples\Example01

该文件显示了如何使用API来讲三台机器初始化为一个网路资源

测试文件如下

/**//*
 * Author: Anthony Sulistio
 * Date: April 2003
 * Description: A simple program to demonstrate of how to use GridSim package.
 *              This example shows how to create one Grid resource with three
 *              machines.
 *
 * NOTE: The values used from this example are taken from the GridSim paper.
 *      
 * $Id: Example1.java,v 1.6 2004/05/29 05:24:00 anthony Exp $
 */

import java.util.*;
import gridsim.*;

/** *//**
 * This class creates one Grid resource with three machines. Before creating
 * any of GridSim entities, you should remember to call
 * GridSim.Init().
 */
class Example1
...{
    /** *//**
     * Main function to run this example
     */
    public static void main(String[] args)
    ...{
        System.out.println("Starting example of how to create one Grid " +
                "resource");

        try
        ...{
            // First step: Initialize the GridSim package. It should be called
            // before creating any entities. We can't run GridResource
            // entity without initializing GridSim first. We will get run-time
            // exception error.

            // number of users need to be created. In this example, we put
            // zero since we don't create any user entities.
            int num_user = 0;  
            Calendar calendar = Calendar.getInstance();
            boolean trace_flag = true; // mean trace GridSim events/activities

            // list of files or processing names to be excluded from any
            //statistical measures
            String[] exclude_from_file = ...{ "" };
            String[] exclude_from_processing = ...{ "" };

            // the name of a report file to be written. We don't want to write
            // anything here. See other examples of using the
            // ReportWriter class
            String report_name = null;

            // Initialize the GridSim package
            System.out.println("Initializing GridSim package");
            GridSim.init(num_user, calendar, trace_flag, exclude_from_file,
                    exclude_from_processing, report_name);

            // Since GridSim 3.0, there is another way to initialise GridSim
            // without any statistical functionalities.
            // The code is commented below:
            // GridSim.init(num_user, calendar, trace_flag);

            // Second step: Create one Grid resource
            GridResource gridResource = createGridResource();
            System.out.println("Finish the 1st example");

            // NOTE: we do not need to call GridSim.startGridSimulation()
            // as there are no user entities to send their jobs to this
            // resource.
        }
        catch (Exception e)
        ...{
            e.printStackTrace();
            System.out.println("Unwanted error happens");
        }
    }


    /** *//**
     * Creates one Grid resource. A Grid resource contains one or more
     * Machines. Similarly, a Machine contains one or more PEs (Processing
     * Elements or CPUs).
     *


     * In this simple example, we are simulating one Grid resource with three
     * Machines that contains one or more PEs.
     * @return a GridResource object
     */
    private static GridResource createGridResource()
    ...{
        System.out.println("Starting to create one Grid resource with " +
                "3 Machines ...");

        // Here are the steps needed to create a Grid resource:
        // 1. We need to create an object of MachineList to store one or more
        //    Machines
        MachineList mList = new MachineList();
        System.out.println("Creates a Machine list");


        // 2. A Machine contains one or more PEs or CPUs. Therefore, should
        //    create an object of PEList to store these PEs before creating
        //    a Machine.
        PEList peList1 = new PEList();
        System.out.println("Creates a PE list for the 1st Machine");


        // 3. Create PEs and add these into an object of PEList.
        //    In this example, we are using a resource from
        //    hpc420.hpcc.jp, AIST, Tokyo, Japan
        //    Note: these data are taken the from GridSim paper, page 25.
        //          In this example, all PEs has the same MIPS (Millions
        //          Instruction Per Second) Rating for a Machine.
        int MIPSRating = 377;
        peList1.add( new PE(0, MIPSRating) );  // store PE id and MIPS Rating
        peList1.add( new PE(1, MIPSRating) );
        peList1.add( new PE(2, MIPSRating) );
        peList1.add( new PE(3, MIPSRating) );
        System.out.println("Creates 4 PEs with same MIPS Rating and put " +
                "them into the PE list");


        // 4. Create one Machine with its id and list of PEs or CPUs
        mList.add( new Machine(0, peList1) );   // First Machine
        System.out.println("Creates the 1st Machine that has 4 PEs and " +
                "stores it into the Machine list");


        // 5. Repeat the process from 2 if we want to create more Machines
        //    In this example, the AIST in Japan has 3 Machines with same
        //    MIPS Rating but different PEs.
        // NOTE: if you only want to create one Machine for one Grid resource,
        //       then you could skip this step.
        PEList peList2 = new PEList();
        System.out.println();
        System.out.println("Creates a PE list for the 2nd Machine");

        peList2.add( new PE(0, MIPSRating) );
        peList2.add( new PE(1, MIPSRating) );
        peList2.add( new PE(2, MIPSRating) );
        peList2.add( new PE(3, MIPSRating) );
        System.out.println("Creates 4 PEs with same MIPS Rating and put " +
                "them into the PE list");

        mList.add( new Machine(1, peList2) );   // Second Machine
        System.out.println("Creates the 2nd Machine that has 4 PEs and " +
                "stores it into the Machine list");

        PEList peList3 = new PEList();
        System.out.println();
        System.out.println("Creates a PE list for the 3rd Machine");

        peList3.add( new PE(0, MIPSRating) );
        peList3.add( new PE(1, MIPSRating) );
        System.out.println("Creates 2 PEs with same MIPS Rating and put " +
                "them into the PE list");

        mList.add( new Machine(2, peList3) );   // Third Machine
        System.out.println("Creates the 3rd Machine that has 2 PEs and " +
                "stores it into the Machine list");


        // 6. Create a ResourceCharacteristics object that stores the
        //    properties of a Grid resource: architecture, OS, list of
        //    Machines, allocation policy: time- or space-shared, time zone
        //    and its price (G$/PE time unit).
        String arch = "Sun Ultra";      // system architecture
        String os = "Solaris";          // operating system
        double time_zone = 9.0;         // time zone this resource located
        double cost = 3.0;              // the cost of using this resource

        ResourceCharacteristics resConfig = new ResourceCharacteristics(
                arch, os, mList, ResourceCharacteristics.TIME_SHARED,
                time_zone, cost);

        System.out.println();
        System.out.println("Creates the properties of a Grid resource and " +
                "stores the Machine list");


        // 7. Finally, we need to create a GridResource object.
        String name = "Resource_0";         // resource name
        double baud_rate = 100.0;           // communication speed
        long seed = 11L*13*17*19*23+1;
        double peakLoad = 0.0;        // the resource load during peak hour
        double offPeakLoad = 0.0;     // the resource load during off-peak hr
        double holidayLoad = 0.0;     // the resource load during holiday

        // incorporates weekends so the grid resource is on 7 days a week
        LinkedList Weekends = new LinkedList();
        Weekends.add(new Integer(Calendar.SATURDAY));
        Weekends.add(new Integer(Calendar.SUNDAY));

        // incorporates holidays. However, no holidays are set in this example
        LinkedList Holidays = new LinkedList();

        GridResource gridRes = null;
        try
        ...{
            gridRes = new GridResource(name, baud_rate, seed,
                resConfig, peakLoad, offPeakLoad, holidayLoad, Weekends,
                Holidays);
        }
        catch (Exception e) ...{
            e.printStackTrace();
        }

        System.out.println("Finally, creates one Grid resource and stores " +
                "the properties of a Grid resource");

        return gridRes;
    }

} // end class

测试结果如下:
Starting example of how to create one Grid resource
Initializing GridSim package
Initialising...
Starting to create one Grid resource with 3 Machines ...
Creates a Machine list
Creates a PE list for the 1st Machine
Creates 4 PEs with same MIPS Rating and put them into the PE list
Creates the 1st Machine that has 4 PEs and stores it into the Machine list

Creates a PE list for the 2nd Machine
Creates 4 PEs with same MIPS Rating and put them into the PE list
Creates the 2nd Machine that has 4 PEs and stores it into the Machine list

Creates a PE list for the 3rd Machine
Creates 2 PEs with same MIPS Rating and put them into the PE list
Creates the 3rd Machine that has 2 PEs and stores it into the Machine list

Creates the properties of a Grid resource and stores the Machine list
Finally, creates one Grid resource and stores the properties of a Grid resource
Finish the 1st example


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xueziheng/archive/2007/09/05/1772993.aspx

阅读(1494) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~