1. A method comprising: training, by at least one computing device including a plurality of processors, a non-linear support vector machine with a stochastic gradient descent algorithm using a training data set, wherein training the non-linear support vector machine includes executing the stochastic gradient descent algorithm for a number of iterations and wherein at least a portion of results of computations of a plurality of iterations of the number of iterations are combined prior to an exchange of results of the computations of the plurality of iterations by at least a subset of the plurality of processors; and parallelizing, by the at least one computing device, at least a portion of the computations of the stochastic gradient descent algorithm on the plurality of processors.