The static (or initial) packing of VMs into a cloud provided host is done based on their expected resource requirements as specified in Service Level Agreements (SLAs). SLAs in Infrastructure as,a Service (IaaS) clouds, however, capture neither changes in requirements over a VM's lifetime nor their dynamic characteristics (e.g. cache behaviour). Placing VMs for packing efficiency alone can result in "incompatible" VMs being co-located that interfere with one another's executions. This can result in the need for costly early VM migrations. In this paper, we address this problem by introducing Compatibility-based Static VM Placement (CSVP). CSVP contributes by exploiting easy-to-obtain information about VMs' expected load variation to co-locate compatible VMs within a scheduling batch together thereby improving their initial performance. We have implemented CSVP in CloudSim and done simulations using workloads derived from a subset of the Google traces. Our results show that even using only simple threshold information about VM behaviour CSVP provides better initial VM placements to avoid some VM interference. Using CSVP, VMs are thus more likely to execute effectively together from their start thereby decreasing the overhead of VM migration.
This paper presents a method to implement the Electromagnetic Transients (EMT) simulation algorithm on a multi-core or grid processing platform. The simultaneous use of multiple processors to divide and solve portions of the simulation has the potential to speed up the overall simulation significantly. However, communication bottlenecks can reduce its effectiveness. This paper uses the Electric Network Interface (ENI), which is a TCP based communication interface implemented using transmission lines (t-lines) as natural interface ports. ENI allows the sub-systems on either side of t-lines to be simulated on separate processors on both local host and distributed computers connected by standard local area networks (LAN). Using several implementation examples, it is shown that the communication bottleneck is significant when the execution time for each subsystem is small, and can result in slower simulations than on a single processor. However, with sufficiently large subsystems, there is significant speed-up to the overall execution time.
This paper presents a grid-processing approach that interfaces optimization algorithms with electromagnetic transients (EMT) simulations programs to significantly speed up the design of power apparatus and networks. A parallel gradient-based optimization algorithm feeds trial parameters to an EMT simulator to determine the optimal parameters. The considerable parallelism in the algorithm is exploited to construct a grid-processing based implementation. The paper discusses the methodology and compares the speedup gained over the conventional sequential approach. The results indicate that the approach is promising, with the speedup being often an order of magnitude or more.
Flexible resource provisioning, the assignment of virtual machines (VMs) to physical machine, is a key requirement for cloud computing. To achieve "provisioning elasticity", the cloud needs to manage its available resources on demand. A-priori, static, VM provisioning introduces no runtime overhead but fails to deal with unanticipated changes in resource demands. Dynamic provisioning addresses this problem but introduces runtime overhead. To reduce VM management overhead so more useful work can be done and to also avoid sub-optimal provisioning we propose a hybrid approach that combines static and dynamic provisioning. The idea is to adapt a good initial static placement of VMs in response to evolving load characteristics, using live migration, as long as the overhead of doing so is low and the effectiveness is high. When this is no longer so, we trigger a revised static placement. (Thus, we are essentially applying local multi-objective optimization to tune a global optimization with reduced overhead.) This approach requires a complicated migration decision algorithm based on current and predicted:future workloads, power consumptions and memory usage in the host machines as well as network burst characteristics for the various possible VM multiplexings (combinations of VMs on a host). A further challenge is to identify those characteristics of the dynamic provisioning that should trigger static re-provisioning.
Data Grids provide services and infrastructure for distributed data-intensive applications accessing massive geographically distributed datasets. An important technique to speed access in Data Grids is replication, which provides nearby data access. Although data replication is one of the major techniques for promoting high data access, the problem of replica placement has not been widely studied for large-scale Grid environments. In this thesis, I propose improved data placement techniques useful when replicating potentially large data files in wide area data grids. These techniques are aimed at achieving faster data access as well as efficient utilization of bandwidth and storage resources. At the core of my approach is a new highly distributed replica placement algorithm that places data in strategic locations to improve overall data access performance while satisfying varying user/application and system demands. This improved efficiency of access to large data will improve the practicality of large-scale data and compute intensive collaborative scientific endeavors. My thesis makes several contributions towards improving the state-of-the-art for replica placement in large-scale data grid environments. The major contributions are: (i) development of a new popularity-driven dynamic replica placement algorithm for hierarchically structured data grids that balance storage space utilisation and access latency; (ii) creation of an adaptive version of the base algorithm to dynamically adapt the frequency and degree of replication based on such factors as data request arrival rates, available storage capacities, etc.; (iii) development of a new highly distributed algorithm to determine a near-optimal replica placement while minimizing replication cost (access and update) for a given traffic pattern; (iv) creation of a distributed QoS-aware replica placement algorithm that supports multiple quality requirements both from user and system perspectives to support efficient transfers of large replicas. Simulation results using widely observed data access patterns demonstrate how the effectiveness of my replica placement techniques is affected by various factors such as grid network characteristics (i.e. topology, number of nodes, storage and workload capacities of replica servers, link capacities, traffic pattern), QoS requirements, and so on. Finally, I compare the performance of my algorithms to a number of relevant algorithms from the literature and demonstrate their usefulness and superiority for conditions of interest.
In parallel computing, MPI is heavily used due to its support of popular cluster based parallel machines and the Single Program Multiple Data (SPMD) model. Normally cluster nodes are dedicated to a single parallel job/application but MPI could also be used with nodes that are concurrently shared by multiple users. In this case, nodes could become overloaded with work from other users. Even a few overloaded nodes can result in application slowdown. Thus, it is desirable to relocate affected processes in a running application to lightly loaded nodes by partial checkpointing and migrating of those processes. In some MPI applications, groups of processes communicate frequently with one another. Such groups must be near one another to ensure communication efficiency. Thus, if any member of a group is to be checkpointed and migrated, all should be. It must therefore be possible to identify such groups. I have built a prototype, using LAM/MPI, that supports partial checkpoint, migration and restart of MPI processes. To identify process groups for checkpoint and migration, I adapted TEIRESIAS (an algorithm for pattern discovery from bioinformatics) to identify frequent, recurring patterns of communication using data gathered by LAM/MPI. I then created predictors that use the discovered patterns to predict groups of communicating processes that should be checkpointed and migrated together. I have assessed the effectiveness of my technique using synthetic and real communication data (for a small set of representative applications) to show that my predictors can accurately predict process groups for those applications. Additionally, I have created a simple simulation system to allow me to explore scenarios related to network characteristics and overload conditions under which my system might provide useful speedup. Not all MPI applications will benefit from my approach (e.g. those with unpredictable communication patterns or large groups of frequently communicating processes). However, my experimental and simulation results suggest that my technique should be effective for a number of common application types, network characteristics and overload conditions. Using partial checkpoint and migration should therefore allow many long running applications to finish faster than if a subset of their processes was left running on overloaded nodes.
Data grids support distributed data-intensive applications that need to access massive (multi-terabyte or larger) datasets stored around the world. Ensuring efficient and fast access to such widely distributed datasets is hindered by the high latencies of wide-area networks. To speed up access, data files can be replicated so users can access nearby copies. Replication also provides high data availability, decreased bandwidth consumption, increased fault tolerance, and improved scalability. Since a grid environment is highly dynamic, resource availability, network latency, and users requests may change frequently. To address these issues a dynamic replica placement strategy that adapts to dynamic behavior in data grids is needed. In this paper, we extend our earlier work on popularity-based replica placement proposing a new adaptive algorithm for use in large-scale hierarchical data grids. Our algorithm dynamically adapts the frequency and degree of replication based on data access arrival rate and available storage capacities. We evaluate our algorithm using OptorSim. Our results show that our algorithm can shorten job execution time greatly and reduce bandwidth consumption compared to its non-adaptive counterpart which outperforms other existing replica placement methods.
In this paper, we discuss an approach to wide-area dynamic software composition that avoids the cost, inflexibility and complexity of installing and maintaining applications on user devices (laptops, cell phones, etc.) and at the same time addresses issues related to performance and security that limit the applicability of application servers, cloud computing and the like. Specifically, this paper deals with a core problem encountered in trying to build such a system: the placement and subsequent location of software components that will be composed on-the-fly to create applications customized to meet user needs, current location and device capabilities.
Using idle compute resources is cost-effective and systems like Condor have successfully exploited such resources in limited contexts (e.g. bag of tasks problems). Increasingly, networks in large organizations are becoming more capable and, when combined with latency tolerance mechanisms, can now provide an attractive platform for running some cluster-based parallel programs.In environments where machines are shared, however, load guarantees cannot be made. If one or more machines running an application become overloaded it may negatively impact the performance of the entire application. This provides a strong motivation to be able to checkpoint and migrate processes to new machines. Such performance driven migration normally involves the entire set of application processes. This, however, is wasteful both in terms of lost progress (if other processes can still execute) and overhead (since moving unnecessary processes is costly). To address these issues, we describe an extension of LAM/MPI that provides a partial checkpoint and migrate ability. Our system checkpoints only the subset of MPI processes that need to migrate. For long running applications exhibiting moderate communications, this can enhance the usefulness of shared machines for "cluster" computing.
Ad-hoc networking allows users to form temporary wireless networks without existing infrastructure. Each node acts both as host and router and must therefore be willing to forward packets for other nodes. This is done using a mobile ad-hoc network (MANET) routing protocol. Frequent topology changes make such routing challenging. Existing protocols include dynamic source routing (DSR), the cluster-based routing protocol (CBRP), and the ad hoc on-demand distance vector (AODV) protocol, among others. Using existing protocols, however, some nodes may be unduly loaded and end-to-end delay may be high. Further, existing protocols are hard to upgrade once they are in use. To address these problems, a new routing protocol, MARP, using mobile agents is presented. Mobile agents are software entities that can move between network nodes and execute programs they carry with them wherever they are running. Our agent-based algorithm implements a demand-based protocol that provides efficient routing at the application layer. A proof of concept implementation has been developed using Aglets and simulated to evaluate its performance. The details of the protocol and its performance are reported in this paper.
The growing popularity of cluster computing makes it important to understand the performance potential of various interconnects. In this paper, we present the results of a performance analysis of multiple cluster interconnects for various applications running on identical nodes. Timing runs for the NAS and Pallas benchmarks as well as some real world parallel applications running on first and second generation Myrinet, SCI, and fast and gigabit Ethernet were made and the results are reported. These results are particularly valuable for computational scientists who are now building their own clusters but who sometimes have limited technical expertise concerning available cluster interconnects.
Heterogeneity of networks and end systems poses challenges for multicast based collaborative applications. In traditional multicasting, the sender transmits video at the same rate to all receivers independent of their network connection, end system equipment, and users' preferences. This wastes resources and may also result in some receivers having their quality expectations unsatisfied. This problem can be addressed, near the network edge, by applying dynamic, in-network transcoding of video streams. In this paper, we design, implement, and assess a network processor (NP) based video transcoding system using the Intel IXP1200. Experiments suggest that our system can adapt the video rate of MPEG-1 streams to a desired level on a per packet basis for moderate traffic levels.
Location determination is a fundamental component enabling context aware home applications. Ultrasound, floor sensors and computer vision, among others, have been proposed for location determination, each with its own benefits and limitations. In this paper we discuss the design, implementation and evaluation of a location determination system based on sensor networks. Our implementation includes three components: the location determination system which adapts and extends Motetrack for in-home use, a location storage system, and a middleware interface to allow home applications to access both current and historical location information. Our system uses Crossbow Mica2 and Mica2Dot sensors to provide 28th, 50th, 85th and 97th percentile location errors of under 1,1.5,2 and 3 meters, respectively. This will support most home services which typically require only "room level" accuracy. Using sensor nodes in our location determination scheme provides a low cost solution and eliminates dependence on the availability of existing, in-home equipment to perform the location determination computations
Dynamically creating new, composite services "on the fly" using existing ones in a local interaction environment (e.g. a home, meeting room, airport lounge, etc.) presents challenging problems. In this paper, we describe a middleware model for such service composition targeted, initially, to a home area network (HAN) scenario. Being able to automatically synthesize new and useful services in a HAN (or other environment) without user intervention makes the use of the network simpler and more attractive for non-expert users (e.g. home owners). We propose a service composition model which involves third-party "service providers" (SPs) in the composition process thereby allowing the discovery of services without direction from the users as to what type of service is desired. We also discuss our experiences with our initial prototype system where ontology based matching is done by the service providers and the resulting composite service is deployed as a workflow using available in-home protocols (e.g. UPnP, Jini, etc.)
The use of versioned data has proven its value in many areas of Computer Science including concurrency control. In this paper we examine the use of versioned objects in object bases for the purpose of enhancing concurrency. We provide a framework for discussing multi-version objects which includes fundamental definitions, the abstraction of objects as automata and a model of object method executions as transactions. A practical optimistic concurrency control protocol for multiversion objects is then presented within the developed framework. This protocol avoids the high roll back costs associated with optimistic protocols in two ways. First, a less restrictive definition of conflict, compared to other definitions, is used to determine when concurrent executions are invalid. Fewer conflicts means fewer roll backs are necessary. Second, a reconciliation process is described which permits cost-effective recovery from invalid concurrent executions rather than roll back.
The demand for ever-increasing performance and flexibility in today's networks has led to the development of network processors. Network processors combine the flexibility of a microprocessor with the performance of one or more Application Specific Integrated Circuits (ASICs) to provide efficient packet processing. Network processors differ greatly in their architectural designs as they are targeted for a wide range of applications and are they must be designed and implemented to maintain trade-offs between performance and flexibility. In this paper, we attempt to identify the key aspects of network processor architectures, to evaluate these key aspects, and to outline the most important current and future architectural trends. Our evaluation directly relates the key architectural features identified to specific network processor products currently available in the market. The main conclusion of the paper is that network processor manufacturers are trying to build a common programmable framework across a large number of applications. It is not yet entirely clear whether or not this approach will be entirely viable.
In this paper we describe an Extension of the LOTEC (Lazy Object Transactional Entry Consistency) protocol designed to minimize the network traffic required to maintain consistency in a software-only DSM (Distributed Shared Memory), Unlike traditional DSM systems which are targetted for shared memory, parallel computing, the protocols discussed in this paper are designed to support distributed persistent object systems. The object environment affords improved semantic analyses that can be axploited to improve the efficiency of consistency maintenance. This paper contributes by defining a mechanism for reducing consistency traffic by partitioning each object into a number of "chunks" based on method-attribute affinity so that the amount of data transferred in update messages is minimized. Some initial simulation results for the extended protocol are also presented that illustrate the effectiveness of our chunking technique.
In this paper we describe an active networks framework for dynamically constructing clusters in response to user requests for computational service. Active network nodes match requests for computational service to appropriate offers of such service using recent access and predicted usage pattern information to construct clusters on-demand. The active networks approach exploits the fact that network devices are in an ideal position to decide which resources should be combined to build clusters in response to particular requests. This approach offers advantages in terms of anonymity of service (systems are unaware of one anothers' existence), scalability (scheduling is distributed across many network processors), fault tolerance (service is distributed so failures are recoverable and/or localized) and automatic localization (clusters are created as close to the requester as possible).