  Privacy-preserving data mining has become an important topic. People have
built several multi-party-computation (MPC)-based frameworks to provide
theoretically guaranteed privacy, the poor performance of real-world algorithms
have always been a challenge. Using Principal Component Analysis (PCA) as an
example, we show that by considering the unique performance characters of the
MPC platform, we can design highly effective algorithm-level optimizations,
such as replacing expensive operators and batching up. We achieve about
200$\times$ performance boost over existing privacy-preserving PCA algorithms
with the same level of privacy guarantee. Also, using real-world datasets, we
show that by combining multi-party data, we can achieve better training
results.
