Dissertation : novel parallel algorithms and performance optimization techniques for the multi-level fast multipole algorithm