  Edge computing has become a very popular service that enables mobile devices
to run complex tasks with the help of network-based computing resources.
However, edge clouds are often resource-constrained, which makes resource
allocation a challenging issue. In addition, edge cloud servers must make
allocation decisions with only limited information available, since the arrival
of future client tasks might be impossible to predict, and the states and
behavior of neighboring servers might be obscured. We focus on a distributed
resource allocation method in which servers operate independently and do not
communicate with each other, but interact with clients (tasks) to make
allocation decisions. We follow a two-round bidding approach to assign tasks to
edge cloud servers, and servers are allowed to preempt previous tasks to
allocate more useful ones. We evaluate the performance of our system using
realistic simulations and real-world trace data from a high-performance
computing cluster. Results show that our heuristic improves system-wide
performance by $20-25\%$ over previous work when accounting for the time taken
by each approach. In this way, an ideal trade-off between performance and speed
is achieved.
