An important question that motivates this project is: whether or not asynchronism helps to reduce the communication penalty and the overall solution time of a given algorithm. Our goals are to compare and contrast the synchronous and asynchronous designs both theoretically and experimentally. We develop synchronous and/or asynchronous implementations which utilize the underlying structures and study the complexities of the implementations.