Article Preview
Top1. Introduction
Volunteer computing system is a kind of scientific computing platforms, where the resources and processing power are volunteered by computer owners. These platforms become more powerful than any existing super computer (Anderson, 2010). They provide more than 10 PetaFLOPS computing power to more than 60 scientific projects in different area such as physics, astronomy, mathematics and chemistry (Javadi, Matawie, and Anderson, 2013).
Whereas, the volunteer resources continue to get faster exponentially, the computational demands of scientific projects are growing even faster. (Anderson 2010) has mentioned that extreme requirements arise in at least three areas: 1) Physical simulation; 2) Compute-intensive analysis of large data; 3) Biology-inspired algorithms.
There exist many systems regarding the volunteer computing, the most popular is: SETI@HOME (Paul 2002), which currently has more than a million and half participants (about 4 million hosts)1. Considered as the first original project, its success led to the development of the Berkeley Open Infrastructure for Network Computing (BOINC). BOINC provides an open-source and free middleware for building volunteer computing infrastructures. It is based on a centralized architecture and follows a client/server model for job and data distribution. In the case of data, a centralized data server, or a set of mirrors servers is used to distribute data to client machines (Elwaer, Taylor, and Rana, 2011).
The volunteer cloud computing is a particular case of the volunteer computing where some of its resources are characterized by their instability since they can connect or disconnect to the system at any moment. So, these resources are characterized by their very low cost, and the degree of their availability; but together they can provide highest power computing in petaflops unit.
Many researchers such as: biologists and physicists use this kind of system in order to perform long operations and to receive response in a short time. Unfortunately, if the users choose the most efficiency resources having the lowest failure probability then the pressure on these resources will increase. This fact causes the increase of response time and the overload of these resources. So, it is difficult to choose the resource that satisfies the needs of the user, i.e. to choose the most efficient (Availability) resource that reduces the response time in one side and balances the load between resources composing the volunteer cloud computing system in the other side (Anderson and Fedak, 2006).
In this paper, we propose a new architecture based on volunteer cloud computing system, where the resources are provided by the public participants. In this environment, we tackle two important problems: the load balancing between resources and the optimization of both time response and availability criteria. These two criteria (time response and availability) are contradictory related, and have an negative impact on load between resources, i.e., if the users need to maximize the availability criterion, then the requests are routed to highest available volunteer resources provoking the increase of the response time (Hemam and Hioual, 2017). On the other hand, if the users need to minimize the time response, then the requests are routed to the volunteer resources characterized by their low availability. In these cases, some volunteer resources are over loaded and others are under loaded. To regulate this problem, we propose an architecture composed of three global components:
- 1.
The volunteer clouds containing unreliable volunteer resources.
- 2.
Users sending their requests to the super volunteer cloud by indicating their preferences requirements.
- 3.
The super volunteer cloud, which is composed of a set of switcher balancers (super-nodes) connected between them via a reliable connection.