T. Serafini L. Zanni G. Zanghirati
GPDT is a C++ software designed to train large-scale Support Vector Machines (SVMs) for binary classification in both scalar and distributed memory parallel environments. It uses a popular problem decomposition technique [1, 2, 4, 6, 7] to split the SVM quadratic programming (QP) problem into a sequence of smaller QP subproblems, each one being solved by a suitable gradient projection method (GPM). The currently implemented GPMs are the Generalized Variable Projection Method (GVPM) [3] and the Dai-Fletcher method (DFGPM) [5].
A few minor bugs fixed (see more details in the
CHANGES file, also packaged with the sources distribution)
[Last updated: Fabruary 7, 2007.]
Authors:
This work is mainly supported by the Italian FIRB Projects
Statistical Learning: Theory, Algorithms and Applications
(grant RBAU01877P), http://slipguru.disi.unige.it/Research/ASTA
and
Parallel Algorithms and Numerical Nonlinear Optimization
(grant RBAU01JYPN), http://dm.unife.it/pn2o.
This work is also supported by the Italian M.I.U.R. project
Numerical Methods and Mathematical Software in Applications
(grant 2004012559), http://www.math.unifi.it/~brugnano/Cofin2004.
Copyright (C) 2004-2007 by T. Serafini, G. Zanghirati, L. Zanni.
Permission to copy and modify this software and its documentation for internal research use is granted, provided that this notice is retained thereon and on all copies or modifications. The authors and their respective Universities makes no representations as to the suitability and operability of this software for any purpose. It is provided "as is" without express or implied warranty. Use of this software for commercial purposes is expressly prohibited without the authors written permission.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License
for more details.
The compressed tar file gpdt-src-1-0r2.tgz (500 KB, updated to rev. 2, Jan. 2007) contains the sources to build the serial version of the program.
gzip -d gpdt-src-1-0r2.tgz
tar -xvf gpdt-src-1-0r2.tar
gpdt
directory, edit the makefile
file
and set the appropriate values for the given variables: in particular,
set the name of your C++ compiler. Then compile the serial version withmake gpdt
gpdt
.A precompiled binary version is also available for the following serial platform:
For MPI-based distributed memory parallel systems we provide the source code here. To build the parallel version for your particular platform follows the same instructions as for the serial version, but the last ones which must be
pgpdt
directory, edit the makefile
file
and set the appropriate values for the given variables: in particular,
set the name of your parallel C++ compiler and ensure the MPI libraries are
available and linkable. Then compile the parallel version withmake pgpdt
pgpdt
.Remark: if you use our parallel code then you are kindly asked to cite this page, together with the references [2] and [7] here below.
Here we provide three freely available data sets, that you can use to test the program: