5,281 research outputs found
Decentralized Adaptive Helper Selection in Multi-channel P2P Streaming Systems
In Peer-to-Peer (P2P) multichannel live streaming, helper peers with surplus
bandwidth resources act as micro-servers to compensate the server deficiencies
in balancing the resources between different channel overlays. With deployment
of helper level between server and peers, optimizing the user/helper topology
becomes a challenging task since applying well-known reciprocity-based choking
algorithms is impossible due to the one-directional nature of video streaming
from helpers to users. Because of selfish behavior of peers and lack of central
authority among them, selection of helpers requires coordination. In this
paper, we design a distributed online helper selection mechanism which is
adaptable to supply and demand pattern of various video channels. Our solution
for strategic peers' exploitation from the shared resources of helpers is to
guarantee the convergence to correlated equilibria (CE) among the helper
selection strategies. Online convergence to the set of CE is achieved through
the regret-tracking algorithm which tracks the equilibrium in the presence of
stochastic dynamics of helpers' bandwidth. The resulting CE can help us select
proper cooperation policies. Simulation results demonstrate that our algorithm
achieves good convergence, load distribution on helpers and sustainable
streaming rates for peers
Distributed Training Large-Scale Deep Architectures
Scale of data and scale of computation infrastructures together enable the
current deep learning renaissance. However, training large-scale deep
architectures demands both algorithmic improvement and careful system
configuration. In this paper, we focus on employing the system approach to
speed up large-scale training. Via lessons learned from our routine
benchmarking effort, we first identify bottlenecks and overheads that hinter
data parallelism. We then devise guidelines that help practitioners to
configure an effective system and fine-tune parameters to achieve desired
speedup. Specifically, we develop a procedure for setting minibatch size and
choosing computation algorithms. We also derive lemmas for determining the
quantity of key components such as the number of GPUs and parameter servers.
Experiments and examples show that these guidelines help effectively speed up
large-scale deep learning training
Cooperative Interval Caching in Clustered Multimedia Servers
In this project, we design a cooperative interval caching (CIC) algorithm for clustered video servers, and evaluate its performance through simulation. The CIC algorithm describes how distributed caches in the cluster cooperate to serve a given request. With CIC, a clustered server can accommodate twice (95%) more number of cached streams than the clustered server without cache cooperation. There are two major processes of CIC to find available cache space for a given request in the cluster: to find the server containing the information about the preceding request of the given request; and to find another server which may have available cache space if the current server turns out not to have enough cache space. The performance study shows that it is better to direct the requests of the same movie to the same server so that a request can always find the information of its preceding request from the same server. The CIC algorithm uses scoreboard mechanism to achieve this goal. The performance results also show that when the current server fails to find cache space for a given request, randomly selecting a server works well to find the next server which may have available cache space. The combination of scoreboard and random selection to find the preceding request information and the next available server outperforms other combinations of different approaches by 86%. With CIC, the cooperative distributed caches can support as many cached streams as one integrated cache does. In some cases, the cooperative distributed caches accommodate more number of cached streams than one integrated cache would do. The CIC algorithm makes every server in the cluster perform identical tasks to eliminate any single point of failure, there by increasing availability of the server cluster. The CIC algorithm also specifies how to smoothly add or remove a server to or from the cluster to provide the server with scalability
- …