= Experimentation with GENI = == Why use GENI? == GENI might be right for your experiment if: * Your experiment requires more resources than would ordinarily be found in your lab. Since GENI is a suite of infrastructures it can potentially provide you with more resources than is typically found in any one laboratory. This is especially true for compute resources: GENI provides access to large testbeds with hundreds of PCs and to cloud computing resources. * Your experiment requires non-IP connectivity across resources. Some GENI aggregates allow you to set up Layer 2 connections between resources within the aggregate. Experimenters may install and run their own Layer 3 and above protocols on these resources. It is also possible to setup Layer 2 connections between many GENI aggregates that connect to GENI backbone networks (Internet2 and NLR). You can even set up your network to route through experimenter programmable switches in the GENI backbone. * Your experiment requires requires geographically distributed resources. Some GENI aggregates include resources distributed around the world. == An Experimenter's View of GENI == GENI is a suite of infrastructures for networking and distributed systems experimentation. GENI supports at-scale experimentation on shared, heterogeneous, highly instrumented infrastructure and enables deep programmability throughout the network. As an experimenter you will need to know about GENI ''clearinghouses'' and GENI ''aggregates''. A GENI clearinghouse authenticates experimenters and issues them credentials needed to obtain GENI resources for experimentation. GENI aggregates provide resources to experimenters with GENI credentials. GENI has a number of different aggregates that provide a variety of resources for experimentation. An important aspect of planning your experiment is deciding what resources you need (type and numbers) and which aggregates might meet your needs. The following figure illustrates the role of GENI clearinghouses and aggregates: [[Image(GENIComponentsPicture-2.png, 40%)]] == GENI Aggregates == The following is a table lists GENI aggregates that are currently available for use by experimenters and the networks (GENI backbone network or the Internet) to which they connect. GENI has two backbone networks: [http://www.internet2.edu/ Internet2] and [http://www.nlr.net/ National Lambda Rail (NLR)]. The Internet2 backbone provides 1Gbps of dedicated bandwidth for GENI experiments and the NLR backbone provides up to 30Gbps of non-dedicated bandwidth. Some aggregates that connect to GENI backbone networks may be connected to other resources on the network using Layer 2 VLANS, giving experimenters the option of running non-IP based Layer 3 and above protocols. === GENI aggregates currently available to experimenters: === '''Compute Resources''' || [wiki:GeniAggregate/PrincetonMyPLC Princeton PlanetLab] || Internet || || [wiki:GeniAggregate/GpoLabMyPlc GPO PlanetLab] || IP connectivity over Internet, Internet2 and NLR || || [wiki:GeniAggregate/UtahProtoGENI U. of Utah ProtoGENI] || Layer 2 connectivity over Internet2, IP connectivity over Internet2 and Internet || || [wiki:GeniAggregate/GpoLabProtoGeni GPO ProtoGENI] || Layer 2 connectivity over Internet2 and NLR, IP connectivity over Internet2, NLR and Internet || || [wiki:GeniAggregate/ISIDeter ISI Deter Testbed] || ?? || || [wiki:GeniAggregate/UWashingtonMillionNodeGENI Million Node GENI] || Internet || || [wiki:GeniAggregate/RutgersORBIT ORBIT] || Internet || '''Programmable Network Resources''' || [wiki:GeniAggregate/WashingtonU-SPPNodes Supercharged PlanetLab Platform Nodes] || Internet2 || || [wiki:GeniAggregate/UtahProtoGENIBBNodes ProtoGENI Backbone Nodes] || Internet2 || || [wiki:GeniAggregate/GTechBGPMux Georgia Tech BGP Mux] || ?? || || [wiki:GeniAggregate/StanfordOpenFlow Stanford OpenFlow network] || ?? || || [wiki:GeniAggregate/IndianaOpenFlow Indiana U. Openflow network] || ?? || || [wiki:GeniAggregate/RutgersOpenFlow Rutgers OpenFlow network] || ?? || || [wiki:GeniAggregate/BBNOpenFlow BBN OpenFlow network] || Internet2 and NLR || === GENI aggregates that will be available soon, with links to their GENI project page: === '''Compute Resources''' || [http://groups.geni.net/geni/wiki/GpENI GpENI] || || [http://groups.geni.net/geni/wiki/GENICloud GENICloud] || || [http://groups.geni.net/geni/wiki/PrimoGENI PrimoGENI] || || [http://groups.geni.net/geni/wiki/CmuLab CMU Homenet Nodes] || || [http://groups.geni.net/geni/wiki/CmuLab CMU Emulab] || '''Programmable Network Resources''' || [http://groups.geni.net/geni/wiki/Mid-Atlantic%20Crossroads MAX] || || [http://groups.geni.net/geni/wiki/CmuLab CMU Wireless Emulator] || === Picking Resources for Your Experiment === As you plan your experiment you will want to consider: * The degree of control you need over your experiment. Do you need to tightly control the resources (CPU, bandwidth, etc.) allocated to your experiment or will best-effort suffice. If you need a tightly controlled environment you might want to consider the U. of Utah ProtoGENI aggregate that allocate entire PCs that can be connected in arbitrary topologies. * The desired network topology. Does your experiment have to be geographically distributed? What kinds of connectivity do you need between these geographically distributed locations. Almost all aggregates can connect using IP connectivity over the Internet. Many aggregates connect to one of the GENI backbones and allow you to set up IP connections with other resources on the backbone. This will give you a bit more control over the network. Some aggregates provide Layer 2 connectivity over a GENI backbone i.e. you can set up vlans between these aggregates and other resources on the backbone network. This allows you to run non-IP protocols across between the aggregate and other resources. * The number of resources you need from an aggregate. Aggregates vary from small installations such as the GPO Lab ProtoGENI aggregate that consists of eleven nodes to the PlanetLab and ProtoGENI aggregates that consist of hundreds of nodes. To help you pick resources for your experiment, the following table shows examples of GENI aggregates that provide computing resources and the type of connectivity to these resources: [[Image(ResourceTable.png, 50%)]] == Experimenter Tools == == Instrumentation and Measurement Tools == == Tutorials == For a tutorial on using [http://trac.gpolab.bbn.com/gcf/wiki/Omni Omni tools] to run experiments on GENI, see [http://groups.geni.net/syseng/wiki/GENIExperimenter].