From b15766bef024f086c51e56aa9af17783d3c1ff68 Mon Sep 17 00:00:00 2001 From: Joe Zhao Date: Wed, 20 May 2015 16:59:50 +0800 Subject: speedup, internalize libop --- model/ranksvm.cpp | 2 +- model/ranksvmtn.cpp | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) (limited to 'model') diff --git a/model/ranksvm.cpp b/model/ranksvm.cpp index a468729..acc2f4e 100644 --- a/model/ranksvm.cpp +++ b/model/ranksvm.cpp @@ -15,7 +15,7 @@ int maxiter = 1; // max iteration count double prec=1e-10; // precision // conjugate gradient double cg_prec=1e-3; // precision -int cg_maxiter = 500; +int cg_maxiter = 1000; int ls_maxiter = 20; // line search double line_prec=1e-10; // precision diff --git a/model/ranksvmtn.cpp b/model/ranksvmtn.cpp index 7f292f5..ba2d5a3 100644 --- a/model/ranksvmtn.cpp +++ b/model/ranksvmtn.cpp @@ -9,23 +9,26 @@ using namespace Eigen; void cal_Dw(RidList &D,const VectorXd &w, VectorXd &Dw) { int n = D.getSize(); - #pragma omp parallel for + // static chunk size of 1 to interleave the iterations + #pragma omp parallel for schedule(static,1) for (int i=0;i &rank,const VectorXd &corr,const VectorX else g+=Ds[rank[i+j]]; } - VectorXd tmp = alpha.cwiseProduct(Ds)-gamma; - VectorXd res = VectorXd::Zero(D.getSize()); + VectorXd tmp(n); + for (int i=0;i