Studies on shared virtual memory have largely used applications as
they were written for hardware cache-coherent machines. The performance evaluations so far point out that SVM is very sensitive to data referencing and communication patterns, and that for certain classes of applications there is a large performance gap between hardware cache-coherent and SVM systems. Looking into this issue in the application side particularly, it should be possible to modify or restructure applications to interact better with page granularity and to reduce the frequency of operations that particularly hurt performance on SVM systems, perhaps at the cost of increasing other, less important overheads. We develop a systematic methodology to explore optimizations in different structured classes. As one aspect in the application-driven study for SVM, this leads into not only guidelines to program on SVM systems, but also insights into the viability of SVM as a platform for these types of applications.