We consider the (block-angular) min-max resource sharing problem, which is defined as follows. Given finite sets R of resources and C of customers, a convex set B c , called block, and a convex function g c :As usual we assume that g c can be computed efficiently and we have a constant σ ≥ 1 and oracle functionsWe describe a simple algorithm which solves this problem with an approximation guarantee σ (1 + ω) for any ω > 0, and whose running time is O(θ (|C|+|R|) log |R|(log log |R|+ω −2 )) for any fixed σ ≥ 1, where θ is the time for an oracle call. This generalizes and improves various previous results. We also prove other bounds and describe several speed-up techniques. In particular, we show how to parallelize the algorithm efficiently. In addition we review another algorithm, variants of which were studied before. We show that this algorithm is almost as fast in theory, but it was not competitive in our experiments. Our work was motivated mainly by global routing in chip design. Here the blocks are mixedinteger sets (whose elements are associated with Steiner trees), and we combine our algorithm with randomized rounding. We present experimental results on instances 123 2 D. Müller et al.resulting from recent industrial chips, with millions of customers and resources. Our algorithm solves these instances nearly optimally in less than two hours.Keywords Min-max resource sharing · Fractional packing · Fully polynomial approximation scheme · Parallelization · Global routing · Chip design Mathematics Subject Classification (2010) 90C27 · 90C90 · 90C59 · 90C48 · 90C06