This paper presents a distributed resource allocation algorithm to jointly optimize the power allocation, channel allocation and relay selection for decode-and-forward (DF) relay networks with a large number of sources, relays, and destinations. The well-known dual decomposition technique cannot directly be applied to resolve this problem, because the achievable data rate of DF relaying is not strictly concave, and thus the local resource allocation subproblem may have non-unique solutions. We resolve this non-strict concavity problem by using the idea of the proximal point method, which adds quadratic terms to make the objective function strictly concave. However, the proximal solution adds an extra layer of iterations over typical duality based approaches, which can significantly slow down the speed of convergence. To address this key weakness, we devise a fast algorithm without the need for this additional layer of iterations, which converges to the optimal solution. Our algorithm only needs local information exchange, and can easily adapt to variations of network size and topology. We prove that our distributed resource allocation algorithm converges to the optimal solution. A channel resource adjustment method is further developed to provide more channel resources to the bottleneck links and realize traffic load balance. Numerical results are provided to illustrate the benefits of our algorithm.