GRIDS - A Parallel Programming System for Grid-Based Algorithms