On Thu, Jul 12, 2012 at 10:42 AM, Olga Tramontano <tramontanoolga@yahoo.it> wrote:
Hi all
I am very new to PETSc. I just learnt its class structure and I just understood that the interface Vec has been reimplemented with the class VecCUSP that is able to support GPU. My question is: if I have a simple code that allocates a vector and sets it with the database options, if I specify -vec_type seqcusp then this vector is allocated AND computed on the GPU?
Because I compared the execution time of the same algorithm with the database options -vec_type seq and -vec_type seqcusp: these two times are very close.

For any performance question, you have to send the output of -log_summary for all runs, or we have no idea what you actually did.

    Matt
 
This is the code: I'm just trying to compute how long does it take to execute the function VecScale:
#include <petscvec.h>
#include <string.h>

#undef __FUNCT__
#define __FUNCT__ "main"
int main(int argc,char **argv)
{
  Vec            x;
  PetscInt       n;
  PetscErrorCode ierr;
  PetscBool exists;
  PetscLogDouble  t1,t2;
  PetscInt a=10;

  ierr = PetscInitialize(&argc,&argv,(char*)0,help);CHKERRQ(ierr); 

  ierr = PetscOptionsGetInt(PETSC_NULL,"-size",&n,&exists); CHKERRQ(ierr);

  ierr = VecCreate(PETSC_COMM_SELF,&x);CHKERRQ(ierr);
  ierr = VecSetSizes(x,PETSC_DECIDE,n);CHKERRQ(ierr);
  ierr = VecSetFromOptions(x);CHKERRQ(ierr);

  ierr = VecSetRandom(x, PETSC_NULL); CHKERRQ(ierr);

  PetscGetTime(&t1);
  ierr = VecScale(x,a); CHKERRQ(ierr);
  PetscGetTime(&t2);
  ierr = PetscPrintf(PETSC_COMM_WORLD, "%2.5f\n",(t2-t1));

  ierr = VecDestroy(&x);CHKERRQ(ierr);

  ierr = PetscFinalize();
  return 0;
}

I use a  vector of about 500000 numbers. With the database option -vec_type seqcusp , the method VecScale should call the method VecScale_SeqCUSP, right? Am I wrong? Should I do it expressly?
Anyway with the option -vec_type seq , the method VecScale takes 0.05681 seconds, 
with the option -vec_type seqcusp,  the method VecScale takes 0.04242 seconds.

Is this speed up sufficient and realistic?
thanks

Olga



--
What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
-- Norbert Wiener