1. A method for training a support vector machine based on a set of training data at one of a plurality of processing nodes, comprising the steps of: a) selecting a local working set of training data based on local data; b) transmitting selected data related to said local working set; c) receiving an identification of a global working set of training data; d) optimizing said global working set of training data; e) updating a portion of gradients of said global working set of training data; and f) repeating said steps a) through e) until a convergence condition is met.