Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

ComputeMgr.C File Reference

#include "InfoStream.h"
#include "ProcessorPrivate.h"
#include "Debug.h"
#include "BOCgroup.h"
#include "ComputeMgr.decl.h"
#include "ComputeMgr.h"
#include "ProxyMgr.decl.h"
#include "ProxyMgr.h"
#include "Node.h"
#include "ComputeMap.h"
#include "PatchMap.h"
#include "PatchMap.inl"
#include "Compute.h"
#include "ComputeNonbondedUtil.h"
#include "ComputeNonbondedSelf.h"
#include "ComputeNonbondedPair.h"
#include "ComputeNonbondedCUDA.h"
#include "ComputeAngles.h"
#include "ComputeDihedrals.h"
#include "ComputeImpropers.h"
#include "ComputeThole.h"
#include "ComputeAniso.h"
#include "ComputeCrossterms.h"
#include "ComputeBonds.h"
#include "ComputeNonbondedCUDAExcl.h"
#include "ComputeFullDirect.h"
#include "ComputeGlobal.h"
#include "ComputeGlobalMsgs.h"
#include "ComputeExt.h"
#include "ComputeGBISser.h"
#include "ComputeLCPO.h"
#include "ComputeFmmSerial.h"
#include "ComputeMsmSerial.h"
#include "ComputeMsmMsa.h"
#include "ComputeMsm.h"
#include "ComputeDPMTA.h"
#include "ComputeDPME.h"
#include "ComputeDPMEMsgs.h"
#include "ComputePme.h"
#include "OptPme.h"
#include "ComputeEwald.h"
#include "ComputeEField.h"
#include "ComputeGridForce.h"
#include "ComputeStir.h"
#include "ComputeSphericalBC.h"
#include "ComputeCylindricalBC.h"
#include "ComputeTclBC.h"
#include "ComputeRestraints.h"
#include "ComputeConsForce.h"
#include "ComputeConsForceMsgs.h"
#include "WorkDistrib.h"
#include "LdbCoordinator.h"
#include "FreeEnergyEnums.h"
#include "FreeEnergyAssert.h"
#include "FreeEnergyGroup.h"
#include "FreeEnergyVector.h"
#include "FreeEnergyRestrain.h"
#include "FreeEnergyRMgr.h"
#include "FreeEnergyLambda.h"
#include "FreeEnergyLambdMgr.h"
#include "GlobalMasterTest.h"
#include "GlobalMasterIMD.h"
#include "GlobalMasterTcl.h"
#include "GlobalMasterSMD.h"
#include "GlobalMasterTMD.h"
#include "GlobalMasterSymmetry.h"
#include "GlobalMasterEasy.h"
#include "GlobalMasterMisc.h"
#include "GlobalMasterFreeEnergy.h"
#include "GlobalMasterColvars.h"
#include "ComputeMgr.def.h"

Go to the source code of this file.

Classes

class  NonbondedCUDASlaveMsg

Defines

#define MIN_DEBUG_LEVEL   1

Functions

void registerUserEventsForAllComputeObjs ()
void build_cuda_force_table ()


Define Documentation

#define MIN_DEBUG_LEVEL   1
 

Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000 by The Board of Trustees of the University of Illinois. All rights reserved.

Definition at line 11 of file ComputeMgr.C.


Function Documentation

void build_cuda_force_table  ) 
 

Definition at line 363 of file ComputeNonbondedCUDA.C.

References ComputeNonbondedCUDA::build_force_table(), ComputeNonbondedCUDA::build_lj_table(), and devicePe.

Referenced by ComputeMgr::recvBuildCudaForceTable().

00363                               {
00364   if ( devicePe != CkMyPe() ) return;
00365   ComputeNonbondedCUDA::build_lj_table();
00366   ComputeNonbondedCUDA::build_force_table();
00367 }

void registerUserEventsForAllComputeObjs void   ) 
 

Definition at line 599 of file ComputeMgr.C.

References computeAnglesType, computeAnisoType, computeBondsType, computeConsForceType, computeConsTorqueType, computeCrosstermsType, computeCylindricalBCType, computeDihedralsType, computeEFieldType, computeEwaldType, computeExclsType, computeExtType, computeFullDirectType, computeGlobalType, computeGridForceType, computeImpropersType, computeLCPOType, computeNonbondedPairType, computeNonbondedSelfType, computePmeType, computeRestraintsType, computeSelfAnglesType, computeSelfAnisoType, computeSelfBondsType, computeSelfCrosstermsType, computeSelfDihedralsType, computeSelfExclsType, computeSelfImpropersType, computeSelfTholeType, computeSphericalBCType, computeStirType, computeTclBCType, computeTholeType, PatchMap::gridsize_a(), PatchMap::gridsize_b(), PatchMap::gridsize_c(), PatchMap::index_a(), PatchMap::index_b(), PatchMap::index_c(), NAMD_bug(), ComputeMap::numComputes(), ComputeMap::Object(), PatchMap::Object(), Lattice::offset_a(), Lattice::offset_b(), Lattice::offset_c(), ComputeMap::pid(), TRACE_COMPOBJ_IDOFFSET, ComputeMap::trans(), and ComputeMap::type().

Referenced by Node::startup().

00600 {
00601 #ifdef TRACE_COMPUTE_OBJECTS
00602     ComputeMap *map = ComputeMap::Object();
00603     PatchMap *pmap = PatchMap::Object();     
00604     char user_des[50];
00605     int p1, p2;
00606     int adim, bdim, cdim;
00607     int t1, t2;
00608     int x1, y1, z1, x2, y2, z2;
00609     int dx, dy, dz;
00610     for (int i=0; i<map->numComputes(); i++)
00611     {
00612         memset(user_des, 0, 50);
00613         switch ( map->type(i) )
00614         {
00615         case computeNonbondedSelfType:
00616             sprintf(user_des, "computeNonBondedSelfType_%d_pid_%d", i, map->pid(i,0));
00617             break;
00618         case computeLCPOType:
00619             sprintf(user_des, "computeLCPOType_%d_pid_%d", i, map->pid(i,0));
00620             break;
00621         case computeNonbondedPairType:
00622             adim = pmap->gridsize_a();
00623             bdim = pmap->gridsize_b();
00624             cdim = pmap->gridsize_c();
00625             p1 = map->pid(i, 0);
00626             t1 = map->trans(i, 0);
00627             x1 = pmap->index_a(p1) + adim * Lattice::offset_a(t1);
00628             y1 = pmap->index_b(p1) + bdim * Lattice::offset_b(t1);
00629             z1 = pmap->index_c(p1) + cdim * Lattice::offset_c(t1);
00630             p2 = map->pid(i, 1);
00631             t2 = map->trans(i, 1);
00632             x2 = pmap->index_a(p2) + adim * Lattice::offset_a(t2);
00633             y2 = pmap->index_b(p2) + bdim * Lattice::offset_b(t2);
00634             z2 = pmap->index_c(p2) + cdim * Lattice::offset_c(t2);
00635             dx = abs(x1-x2);
00636             dy = abs(y1-y2);
00637             dz = abs(z1-z2);
00638             sprintf(user_des, "computeNonBondedPairType_%d(%d,%d,%d)", i, dx,dy,dz);
00639             break;
00640         case computeExclsType:
00641             sprintf(user_des, "computeExclsType_%d", i);
00642             break;
00643         case computeBondsType:
00644             sprintf(user_des, "computeBondsType_%d", i);
00645             break;
00646         case computeAnglesType:
00647             sprintf(user_des, "computeAnglesType_%d", i);
00648             break;
00649         case computeDihedralsType:
00650             sprintf(user_des, "computeDihedralsType_%d", i);
00651             break;
00652         case computeImpropersType:
00653             sprintf(user_des, "computeImpropersType_%d", i);
00654             break;
00655         case computeTholeType:
00656             sprintf(user_des, "computeTholeType_%d", i);
00657             break;
00658         case computeAnisoType:
00659             sprintf(user_des, "computeAnisoType_%d", i);
00660             break;
00661         case computeCrosstermsType:
00662             sprintf(user_des, "computeCrosstermsType_%d", i);
00663             break;
00664         case computeSelfExclsType:
00665             sprintf(user_des, "computeSelfExclsType_%d", i);
00666             break;
00667         case computeSelfBondsType:
00668             sprintf(user_des, "computeSelfBondsType_%d", i);
00669             break;
00670         case computeSelfAnglesType:
00671             sprintf(user_des, "computeSelfAnglesType_%d", i);
00672             break;
00673         case computeSelfDihedralsType:
00674             sprintf(user_des, "computeSelfDihedralsType_%d", i);
00675             break;
00676         case computeSelfImpropersType:
00677             sprintf(user_des, "computeSelfImpropersType_%d", i);
00678             break;
00679         case computeSelfTholeType:
00680             sprintf(user_des, "computeSelfTholeType_%d", i);
00681             break;
00682         case computeSelfAnisoType:
00683             sprintf(user_des, "computeSelfAnisoType_%d", i);
00684             break;
00685         case computeSelfCrosstermsType:
00686             sprintf(user_des, "computeSelfCrosstermsType_%d", i);
00687             break;
00688 #ifdef DPMTA
00689         case computeDPMTAType:
00690             sprintf(user_des, "computeDPMTAType_%d", i);
00691             break;
00692 #endif
00693 #ifdef DPME
00694         case computeDPMEType:
00695             sprintf(user_des, "computeDPMEType_%d", i);
00696             break;
00697 #endif
00698         case computePmeType:
00699             sprintf(user_des, "computePMEType_%d", i);
00700             break;
00701         case computeEwaldType:
00702             sprintf(user_des, "computeEwaldType_%d", i);
00703             break;
00704         case computeFullDirectType:
00705             sprintf(user_des, "computeFullDirectType_%d", i);
00706             break;
00707         case computeGlobalType:
00708             sprintf(user_des, "computeGlobalType_%d", i);
00709             break;
00710         case computeStirType:
00711             sprintf(user_des, "computeStirType_%d", i);
00712             break;
00713         case computeExtType:
00714             sprintf(user_des, "computeExtType_%d", i);
00715             break;
00716         case computeEFieldType:
00717             sprintf(user_des, "computeEFieldType_%d", i);
00718             break;
00719             /* BEGIN gf */
00720         case computeGridForceType:
00721             sprintf(user_des, "computeGridForceType_%d", i);
00722             break;
00723             /* END gf */
00724         case computeSphericalBCType:
00725             sprintf(user_des, "computeSphericalBCType_%d", i);
00726             break;
00727         case computeCylindricalBCType:
00728             sprintf(user_des, "computeCylindricalBCType_%d", i);
00729             break;
00730         case computeTclBCType:
00731             sprintf(user_des, "computeTclBCType_%d", i);
00732             break;
00733         case computeRestraintsType:
00734             sprintf(user_des, "computeRestraintsType_%d", i);
00735             break;
00736         case computeConsForceType:
00737             sprintf(user_des, "computeConsForceType_%d", i);
00738             break;
00739         case computeConsTorqueType:
00740             sprintf(user_des, "computeConsTorqueType_%d", i);
00741             break;
00742         default:
00743             NAMD_bug("Unknown compute type in ComputeMgr::registerUserEventForAllComputeObjs().");
00744             break;
00745         }
00746         int user_des_len = strlen(user_des);
00747         char *user_des_cst = new char[user_des_len+1];
00748         memcpy(user_des_cst, user_des, user_des_len);
00749         user_des_cst[user_des_len] = 0;
00750         //Since the argument in traceRegisterUserEvent is supposed
00751         //to be a const string which will not be copied inside the
00752         //function when a new user event is created, user_des_cst 
00753         //has to be allocated in heap.
00754         int reEvenId = traceRegisterUserEvent(user_des_cst, TRACE_COMPOBJ_IDOFFSET+i);
00755         //printf("Register user event (%s) with id (%d)\n", user_des, reEvenId);
00756     }
00757 #else
00758     return;
00759 #endif
00760 }


Generated on Wed May 22 04:07:19 2013 for NAMD by  doxygen 1.3.9.1