Gradient clock synchronization is a particular synchronization scheme in distributed systems that requires neighboring nodes to be more tightly synchronized than far away nodes. Up until now, two gradient clock synchronization algorithms have been proposed in the literature which are optimal in terms of worst-case synchronization error among neighboring nodes. In this article, we focus on these algorithms and reveal their drawbacks: The first algorithm requires continuous decision making, which makes it unsuitable for discrete computing systems. Although the second one is a discrete algorithm, it performs computation at every tick of the clock which increases its computational complexity drastically. In addition, both algorithms share the drawback of increasing memory requirements with the network density. Considering these drawbacks, we devise a new discrete gradient clock synchronization algorithm whose communication and computation events are synchronized with clock tick events. The proposed algorithm is lightweight in terms of computational overhead since its computation steps are simple and they are not performed at each clock tick. Moreover, it has constant space complexity that is independent from the network density.