Skip to main content
Log in

An efficient resource allocation for maximizing benefit of users and resource providers in ad hoc grid environment

  • Published:
Information Systems Frontiers Aims and scope Submit manuscript

Abstract

Ad hoc grids allow a group of individuals to accomplish a mission that involves computation and communication among the grid components, often without fixed structure. In an ad hoc grid, every node in the network can spontaneously arise as a resource consumer or a resource producer at any time when it needs a resource or it possesses an idle resource. At the same time, the node in ad hoc grid is often energy constrained. The paper proposes an efficient resource allocation scheme for grid computing marketplace where ad hoc grid users can buy usage of memory and CPU from grid resource providers. The ad hoc grid user agents purpose to obtain the optimized quality of service to accomplish their tasks on time with a given budget, and the goal of grid resource providers as profit-maximization. Combining perspectives of both ad hoc grid users and resource providers, the paper present ad hoc grid resource allocation algorithm to maximize the global utility of the ad hoc grid system which are beneficial for both grid users and grid resource providers. Simulations are conducted to compare the performance of the algorithms with related work.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

References

  • Abdullah, T., Sokolov, V., Pourebrahimi, B., & Bertels, K. (2008). Self-organizing dynamic Ad Hoc Grids (pp. 202–207). Second IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops.

  • Abdullah, T., Mhamdi, L., Pourebrahimi, B., & Bertels, K. (2009). Resource discovery with dynamic matchmakers in ad hoc grid (pp. 138–144). Fourth International Conference on Systems.

  • Borissov, N., Neumann, D., & Weinhardt, C. (2010). Automated bidding in computational markets: an application in market-based allocation of computing services. Autonomous Agents and Multi-Agent Systems, 21, 115–142.

    Article  Google Scholar 

  • Buss, G., Lee, K., & Veit, D. (2010). Scalable grid resource allocation for scientific workflows using hybrid metaheuristics. Advances in Grid and Pervasive Computing, 256–267.

  • Cendron, M. M., & Westphall, C. B. (2008). A price-based task scheduling for grid computing networking (pp. 762–766). Networking 2008(ICN 2008), Seventh International Conference, 13–18 April 2008.

  • Huraj, L., & Reiser, H. (2009). VO intersection trust in Ad hoc grid environment (pp. 456–461). Fifth International Conference on Networking and Services, 2009 Fifth International Conference on Networking and Services.

  • Lee, J., & Szymanski, B. (2009). A participation incentive market mechanism for allocating heterogeneous network services. Honolulu: IEEE GLOBECOM.

    Book  Google Scholar 

  • Li, C., & Li, L. (2007a). Joint QoS optimization for layered computational grid. Information Sciences, 177/15, 3038–3059, Elsevier, August 2007

    Google Scholar 

  • Li, C., & Li, L. (2007b). Utility based QoS optimisation strategy for multi-criteria scheduling on the grid. Journal of Parallel and Distributed Computing, 67(2), 142–153. Elsevier, USA, February.

    Article  Google Scholar 

  • Li, D., Cao, J., Lu, X., & Chan, K. C. C. (2009). Efficient range query processing in peer-to-peer systems. IEEE Transactions on Knowledge and Data Engineering, 21(1), 78–91

    Google Scholar 

  • Lu X., Wang, H., & Wang, J. (2006). Internet-based virtual computing environment (iVCE): concepts and architecture, science in China series F: Information Sciences, 49(6), 681–701

    Google Scholar 

  • Mihailescu, M., & Teo, Y. M. (2010). On economic and computational-efficient resource pricing in large distributed systems (pp. 838–843), 2010 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing.

  • Moreno-Vozmediano, R. (2009). A hybrid mechanism for resource/service discovery in ad-hoc grids. Future Generation Computer Systems, 25(7), 717–727.

    Article  Google Scholar 

  • Parsa, S., Shokri, A., & Nourossana, S. (2009). A novel market based grid resource allocation algorithm (pp. 146–152). First International Conference on Networked Digital Technologies, NDT '09.

  • Pourebrahimi, B., & Bertels, K. (2008). Adaptation to dynamic resource availability in ad hoc grids through a learning mechanism. In CSE’08: Proceedings of the 2008 11th IEEE International Conference on Computational Science and Engineering (pp. 171–178).

  • Satayapiwat, C., Egawa, R., Takizawa, H., & Kobayashi, H. (2008). A utility-based double auction mechanism for efficient grid resource allocation (pp. 252–260). International Symposium on Parallel and Distributed Processing with Applications, ISPA '08.

  • Son, S., & Sim, K. M. (2009). Relaxed time slot negotiation for grid resource allocation GDC 2009. CCIS, 63, 25–32.

    Google Scholar 

  • Varalakshmi, P., Nandini, M., Krithika, K., & Aarthi, R. (2010). An optimal trust based resource allocation mechanism for cross domain grid, information processing and management international conference on recent trends in business administration and information processing, BAIP 2010, Kerala, India, March 26–27. Proceedings, pp. 342–348

  • Vilajosana, X., Krishnaswamy, R., & Marqu’es, J. M. (2010). Design of a configurable auction server for resource allocation in grid (pp. 396–401). International Conference on Complex, Intelligent and Software Intensive Systems.

Download references

Acknowledgements

The authors thank the editor and the anonymous reviewers for their helpful comments and suggestions. The work was partly supported by the National Natural Science Foundation of China (NSF) under grant No. 60970064, National Key Basic Research Program of China (973 Program) under Grant No.2011CB302601,Open Fund of the State Key Laboratory of Software Development Environment under Grant (No. SKLSDE-2011KF-01), Beihang University, Program for New Century Excellent Talents in University, China (NCET-08-0806), Fok Ying Tong Education Foundation, China (Grant No. 121067), and Fundamental Research Funds for the Central Universities (2010-II-003) . Any opinions, findings, and conclusions are those of the authors and do not necessarily reflect the views of the above agencies.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Chunlin Li.

Appendix

Appendix

1.1 Proofs for theorem 1

We assume that each ad hoc grid user agent submits \( \mathop{u}\nolimits_i^j \) to the CPU resource agent and \( v_i^k \) to memory resource agent. Then, \( {u_i} = [u_i^1......u_i^j] \) represents all payments of ad hoc grid user agents for jth CPU resource agent, \( {v_i} = [v_i^1......v_i^k] \) represents all payments of ad hoc grid user agents for kth memory resource agent. Let \( {m_i} = \sum\limits_j {u_i^j} + \sum\limits_k {v_i^k} \), m i is the total payment of the ith ad hoc grid user agent. N ad hoc grid user agents compete for grid resources with finite capacity. The resource is allocated using a market mechanism, where the partitions depend on the relative payments sent by the ad hoc grid user agents. Let \( {\text{p}}{{\text{x}}_{\text{j}}} \),\( {\text{p}}{{\text{y}}_{\text{k}}} \) denote the price of the resource unit of CPU resource agent j and memory resource agent k respectively. Let the pricing policy, \( p{\text{x}} = (p{{\text{x}}_1},p{{\text{x}}_2}, \cdots, p{{\text{x}}_n}) \), denote the set of CPU resource unit prices of all the CPU resource agents in the ad hoc grid, \( p{\text{y}} = (p{{\text{y}}_1},p{{\text{y}}_2}, \cdots, p{{\text{y}}_k}) \) is set of memory resource unit prices. The ith ad hoc grid user agent receives resources proportional to its payment relative to the sum of the grid resource agent’s revenue. Let \( \mathop{x}\nolimits_i^j \), \( \mathop{y}\nolimits_i^k \) be the fraction of resource units allocated to ad hoc grid user agent i by CPU resource agent j and memory resource agent k. The time taken by the ith ad hoc grid user agent to complete nth job is:

$$ \mathop{t}\nolimits_i^n = \frac{{{b_{{in}}}px{}_j}}{{{c_j}u_i^j}} + \frac{{{d_{{in}}}p{y_k}}}{{{s_k}v_i^k}} $$

Ad hoc grid user agent’s optimization can be reformulated as

$$ Max\left\{ {{U_{{user}}} = \phi_i^1\left( {{E_i} - \sum\limits_j {u_i^j} - \sum\limits_k {v_i^k} } \right) + \phi_i^2\left( {{T_i} - \sum\limits_{{n = 1}}^N {\frac{{{b_{{in}}}p{x_j}}}{{{c_j}u_i^j}} - } \sum\limits_{{n = 1}}^N {\frac{{{d_{{in}}}p{y_k}}}{{{s_k}v_i^k}}} - D} \right) + \phi_i^3\frac{g}{f}} \right\} $$

The Lagrangian for the ad hoc grid user agent’s utility is as follows.

$$ {L_{{user}}}\left( {u_i^j,v_i^k} \right) = \phi_i^1\left( {{E_i} - \sum\limits_j {u_i^j} - \sum\limits_k {v_i^k} } \right) + \phi_i^2\left( {{T_i} - \sum\limits_{{n = 1}}^N {\frac{{{b_{{in}}}p{x_j}}}{{{c_j}u_i^j}} - } \sum\limits_{{n = 1}}^N {\frac{{{d_{{in}}}p{y_k}}}{{{s_k}v_i^k}}} - D} \right) + \phi_i^3\frac{g}{f} + \lambda \left( {{T_i} - \sum\limits_{{i = 1}}^N {t_i^n} } \right) $$

Where λ is the Lagrangian constant. From Karush-Kuhn-Tucker Theorem we know that the optimal solution is given \( \frac{{\partial {L_{\text{user}}}\left( {u,v} \right)}}{{\partial u}} = 0 \) for λ>0.

$$ \frac{{\partial {L_{{user}}}\left( {\mathop{u}\nolimits_i^j, v_i^k} \right)}}{{\partial \mathop{u}\nolimits_i^j }} = - \phi_i^1 + \phi_i^2\frac{{{b_{{in}}}\mathop{{px}}\nolimits_j }}{{\mathop{{{c_j}\left( {\mathop{u}\nolimits_i^j } \right)}}\nolimits^2 }} + \lambda \frac{{{b_{{in}}}\mathop{{px}}\nolimits_j }}{{\mathop{{{c_j}\left( {\mathop{u}\nolimits_i^j } \right)}}\nolimits^2 }} $$

Let \( \frac{{\partial {L_{\text{user}}}\left( {\mathop{u}\nolimits_i^j, v_i^k} \right)}}{{\partial \mathop{u}\nolimits_i^j }} = 0 \) to obtain

$$ \mathop{u}\nolimits_i^j = \mathop{{\frac{{\left( {\phi_i^2 + \lambda } \right){b_{{in}}}\mathop{{p{\text{x}}}}\nolimits_j }}{{\phi_i^1{c_j}}}}}\nolimits^{{1/2}} $$

Using this result in the constraint equation, we can determine \( \chi = \frac{{\phi_i^2 + \lambda }}{{\phi_i^1}} \) as

$$ \mathop{{\left( \chi \right)}}\nolimits^{{ - 1/2}} = \frac{{{T_i}}}{{\sum\limits_{{m = 1}}^N {\mathop{{\left( {\frac{{\mathop{{px}}\nolimits_m {b_{{im}}}}}{{{c_m}}}} \right)}}\nolimits^{{1/2}} } }} $$

We substitute χ to obtain \( \mathop{{\mathop{u}\nolimits_i^j }}\nolimits^{ * } \)

$$ \mathop{{\mathop{u}\nolimits_i^j }}\nolimits^{ * } = \mathop{{(\frac{{{b_{{in}}}\mathop{{p{\text{x}}}}\nolimits_j }}{{{c_j}}})}}\nolimits^{{1/2}} \frac{{\sum\limits_{{m = 1}}^N {\mathop{{(\frac{{{b_{{im}}}\mathop{{p{\text{x}}}}\nolimits_m }}{{{c_m}}})}}\nolimits^{{1/2}} } }}{{{T_i}}} $$

\( \mathop{{\mathop{u}\nolimits_i^j }}\nolimits^{ * } \) is the unique optimal solution to the ad hoc grid user agent’s optimization problem. It means that ad hoc grid user agent want to pay\( \mathop{{\mathop{u}\nolimits_i^j }}\nolimits^{ * } \) to CPU resource agent j for needed CPU resource under completion time constraint.

Using the similar method, let \( \frac{{\partial L\left( {\mathop{u}\nolimits_i^j, v_i^k} \right)}}{{\partial \mathop{v}\nolimits_i^k }} = 0 \)

$$ \frac{{\partial L\left( {\mathop{u}\nolimits_i^j, v_i^k} \right)}}{{\partial \mathop{v}\nolimits_i^k }} = - \varphi_i^1 + \varphi_i^2\frac{{{d_{{in}}}\mathop{{py}}\nolimits_k }}{{\mathop{{{s_k}\left( {\mathop{v}\nolimits_i^k } \right)}}\nolimits^2 }} + \lambda \frac{{{d_{{in}}}\mathop{{py}}\nolimits_k }}{{\mathop{{{s_k}\left( {\mathop{v}\nolimits_i^k } \right)}}\nolimits^2 }} = 0 $$

We can get \( \mathop{v}\nolimits_i^k = \mathop{{\left( {\frac{{\left( {\varphi_i^2 + \lambda } \right){d_{{in}}}\mathop{{py}}\nolimits_k }}{{\varphi_i^1{s_k}}}} \right)}}\nolimits^{{1/2}} \)

Using this result in the constraint equation, we can determine \( \rho = \frac{{\varphi_i^2 + \lambda }}{{\varphi_i^1}} \) as

$$ \mathop{{\left( \eta \right)}}\nolimits^{{ - 1/2}} = \frac{{{T_i}}}{{\sum\limits_{{m = 1}}^N {\mathop{{\left( {\frac{{\mathop{{py}}\nolimits_m {d_{{im}}}}}{{{s_m}}}} \right)}}\nolimits^{{1/2}} } }} $$

We obtain \( \mathop{{\mathop{v}\nolimits_i^k }}\nolimits^{ * } \)

$$ \mathop{{\mathop{v}\nolimits_i^k }}\nolimits^{ * } = \mathop{{\left( {\frac{{{d_{{im}}}\mathop{{py}}\nolimits_k }}{{{s_k}}}} \right)}}\nolimits^{{1/2}} \frac{{\sum\limits_{{m = 1}}^N {\mathop{{\left( {\frac{{{d_{{im}}}\mathop{{py}}\nolimits_m }}{{{s_m}}}} \right)}}\nolimits^{{1/2}} } }}{{{T_i}}} $$

It means that ad hoc grid user agent want to pay \( \mathop{{\mathop{v}\nolimits_i^k }}\nolimits^{ * } \) to memory resource agent k for needed memory resource under completion time constraint.

1.2 Proofs for theorem 2

We take derivative and second derivative with respect to \( \mathop{x}\nolimits_i \):

$$ {U_{{provider}}}\prime \left( {x_i^j} \right) = \frac{{u_i^j}}{{x_i^j}} + {w_j}\quad \,{U_{{provider}}}\prime \prime \left( {x_i^j} \right) = - \frac{{u_i^j}}{{x_i^{{j2}}}} $$

\( {U_{\text{provider}}}\prime \prime \left( {x_i^j} \right) < 0 \) is negative due to \( 0 < {\text{x}}_i^{\text{j}} \). The extreme point is the unique value maximizing the utility of CPU resource agents. The Lagrangian for U provider is \( {L_{\text{provider}}}(x_i^j,y_i^k) \) .

$$ \begin{gathered} {L_{{provider}}}\left( {x_i^j,y_i^k} \right) = \sum {{w_j}\left( {{c_j} - \sum {x_i^j} } \right) + \sum {u_i^j\left( {\log x_i^j + 1} \right)} } + \sum {{\sigma_k}\left( {{s_k} - \sum {y_i^k} } \right) + \sum {v_i^k\left( {\log y_i^k + 1} \right)} } \\ + \xi \left( {{c_j} - \sum\limits_i {x_i^j} } \right) + \zeta \left( {{s_k} - \sum\limits_i {y_i^k} } \right) \\ \end{gathered} $$

Where ξ, ζ are the Lagrangian constants. From Karush-Kuhn-Tucker Theorem we know that the optimal solution is given \( \frac{{\partial {L_{\text{provider}}}\left( {x_i^j,y_i^k} \right)}}{{\partial x_i^j}} = 0 \) for ξ, ζ > 0.

Let \( \frac{{\partial {L_{\text{provider}}}\left( {x_i^j,y_i^k} \right)}}{{\partial x_i^j}} = 0 \) to obtain \( x_i^j = \frac{{u_i^j}}{{\left( {{w_j} + \xi } \right)}} \)

Using this result in the constraint Eq. \( {{\text{c}}_{\text{j}}} \geqslant \sum\limits {{\text{x}}_i^{\text{j}}} \), we can determine θ = wj + ξ as

$$ \theta = \frac{{\sum\limits_{{d = 1}}^n {u_i^d} }}{{{c_j}}} $$

We substitute θ into \( {\text{x}}_i^{\text{j}} \) to obtain

$$ \mathop{{x_i^j}}\nolimits^{*} = \frac{{u_i^j{c_j}}}{{\sum\limits_{{d = 1}}^n {u_i^d} }} $$

\( x_i^{{j*}} \) is the unique CPU allocation for maximizing the utility of CPU resource provider j.

Using the similar method, we can solve memory allocation optimization problem.

Let \( \frac{{\partial {L_{{provider}}}\left( {x_i^j,y_i^k} \right)}}{{\partial y_i^k}} = 0 \) to obtain \( y_i^k = \frac{{v_i^k}}{{\left( {{\sigma_k} + \zeta } \right)}} \)

Using this result in the constraint Eq. \( {{\text{s}}_k} \geqslant \sum\limits {y_i^k} \), we can determine \( \tau = {\sigma_{\text{k}}} + \zeta \) as

$$ \tau = \frac{{\sum\limits_{{k = 1}}^K {v_i^k} }}{{{s_k}}} $$

We substitute τ into \( y_i^k \) to obtain \( \mathop{{y_i^k}}\nolimits^{*} = \frac{{v_i^k{s_k}}}{{\sum\limits_{{k = 1}}^K {v_i^k} }} \)

\( y{_i^{k*}} \) is the unique optimal memory resource allocation for maximizing the utility of memory resource provider k.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Li, C., Li, L. An efficient resource allocation for maximizing benefit of users and resource providers in ad hoc grid environment. Inf Syst Front 14, 987–998 (2012). https://doi.org/10.1007/s10796-011-9310-4

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10796-011-9310-4

Keywords

Navigation