Function optimization---finding the minimum or maximum of a given function---is an extremely challenging problem with applications in physics, economics, machine learning, engineering, and many other fields. While optimization is an active area of research, only a portion of this work acknowledges parallel computation, which is now widely available. Today, anyone with a modest budget can buy a cluster with hundreds of cores, pay for access to a supercomputer with thousands of processors, or at least purchase a laptop with 8 cores. Thus, an algorithm that works well in serial but cannot be parallelized is needlessly inefficient in real-life computationalenvironments.We address these issues in three connected threads of development: a high-level programming framework that makes it possible to create flexible and efficient implementations of optimization algorithms; improvements to an existing algorithm, Particle Swarm Optimization, to make it take better advantage of parallel resources; and a statistical model designed to efficiently use available information in parallel optimization by inferring search directions. Each of these is an essential step toward effective parallel optimization. First, without a suitable high-level programming model, expediency leads to purely serial development with parallel issues only an afterthought. Second, PSO has proven effective for optimization and is an excellent candidate to consider for efficient parallel implementations. Third, a model for inference of search directions is useful for understanding communication in the context of parallel optimization and provides a flexible base for continuing optimization research.



College and Department

Physical and Mathematical Sciences; Computer Science



Date Submitted


Document Type