Machine learning is increasingly employed in computing tasks where it is infeasible to design an explicit algorithm due to the high dimensionality of the input space and the overall complexity of the problem. Algorithms for machine learning build up a model from example inputs and continuously refine this model based on some form of feedback over many training steps. Learning is often either supervised or unsupervised, and in both cases is very time-consuming. Using our expertise in parallel programming, we can speed up your machine learning algorithms to significantly increase learning rates and thus the quality of your algorithms. For example, we could help one of our customers by reducing the training times of its artificial neural network to a tenth of the time, which translated to a better quality of the customer’s analysis software.
We can also consult you in whether your algorithm is suitable for high speedups or whether a different algorithm may better benefit from parallelization. Contact us to find the best solution for you.