Understanding Associations among Faces in Streaming Video
PNNL researchers achieve greater algorithm and processor flexibility
Researchers at Pacific Northwest National Laboratory (PNNL) are accomplishing high-throughput analysis of unstructured data with parallel KD algorithms using an approach that allows users to use familiar desktop tools to do their analyses and then to automatically parallelize the code to run on HPCs. Dr. Harold Trease and his colleagues are creating a system that identifies faces in streaming video and makes high-level associations about which faces are associated with other faces.1 Once faces are isolated from background information, the workflow then characterizes each face using principal component analysis on a high-dimensional facial signature. It then uses the low-dimensional transformed data to create an adjacency matrix representing facial associations, a multi-step process involving creation and partitioning of a Voronoi/Delaunay mesh.
For the first implementation of this workflow, Trease and his team implemented each step discretely with C, Fortran and MPI, requiring detailed knowledge of each algorithm and considerable effort for the implementation. For a more robust implementation, the developers wanted the flexibility to change algorithms (e.g., substituting independent component analysis for principal component analysis) and the ability to exploit computational accelerators, such as graphics processors (GPUs) from NVIDIA or AMD/ATI. By using Knowledge Discovery Suite (KDS), PNNL researchers are able to achieve this flexibility.
For instance, PCA is just one algorithm for reducing high-dimensional data to fewer dimensions that capture the diversity of the data more succinctly. SVD, NMF and independent component analysis (ICA) are other dimensionality-reduction algorithms with somewhat different results based on their different mathematical natures. A typical researcher wanting to reduce dimensionality will not know the details of PCA compared to ICA, nor when one is preferred over the other, especially for the nature of the researcher’s specific data. Thus the KDS’ menu of algorithms, each implemented for scalable performance, enables the researcher to calibrate the algorithm with the actual data at scale.
Another important benefit of expressing algorithms at a higher level is the greater leeway available to the library developer to exploit the power of accelerators like GPUs. Because accelerators tend to have niche algorithms for which they are extremely well suited, the library developer can map a high-level algorithm to the set of things an accelerator does well and reap the potential added performance, without the application developer being intimately aware of the use of the accelerator. This is important for Trease’s application, which needs to use hardware accelerators in order to run fast enough.
1. H. Trease, T. Carlson, R. Moony, R. Farber, and L. Trease, “Unstructured Data Analysis of Streaming Video Using Parallel, High-Throughput Algorithms,” Proceedings of 9th IASTED International Conference on Signal and Information Processing, Honolulu, USA, 2007.
Steve Reinhardt is Vice President of Joint Research at Interactive Supercomputing. He may be contacted at editor@ScientificComputing.com.