服务器
计算机科学
线程(计算)
近似算法
资源配置
最优分配
功能(生物学)
运行时间
分布式计算
数学优化
算法
计算机网络
数学
操作系统
进化生物学
生物
作者
Pan Lai,Rui Fan,Wei Zhang,Fang Liu
标识
DOI:10.1109/ipdps.2016.82
摘要
Achieving high performance in many distributed systems requires finding a good assignment of threads to servers as well as effectively allocating each server's resources to its assigned threads. The assignment and allocation components of this problem have both been studied extensively, but separately in the literature. In this paper, we introduce the assign and allocate (AA) problem, which seeks to simultaneously find an assignment and allocations that maximize the total utility of the threads. Assigning and allocating the threads together can result in substantially better overall utility than performing the steps separately, as is traditionally done. We model each thread by a concave utility function giving its throughput as a function of its assigned resources. We first show that the AA problem is NP-hard, even when there are only two servers. We then present a 2(√2-1) > 0.828 factor approximation algorithm, which runs in O(mn2 + n (log mC)2) time for n threads and m servers with C amount of resources each. We also present a faster algorithm with the same approximation ratio and O(n(log mC)2) running time. We conducted experiments to test the performance of our algorithm on threads with different types of utility functions, and found that it achieves over 99% of the optimal utility on average. We also compared our algorithm against several other assignment and allocation algorithms, and found that it achieves up to 5.7 times better total utility.
科研通智能强力驱动
Strongly Powered by AbleSci AI