Efficient Viewshed Computation Algorithms On GPUs and CPUs