MPCA is a comprehensive suite of tools for doing discrete principal components analysis on data sets of size 100Mb or more. Scaling is done using sparse vectors, multi-threading, memory mapping, and other POSIX tricks. Reports, file dumping utilities, and other utilities are included. The general problem of discrete components analysis is variously called grade of membership, PLSA, non-neg.