int ScriptTcl::Tcl_numPhysicalNodes(ClientData, Tcl_Interp *interp, int argc, char **) { if ( argc > 1 ) { Tcl_SetResult(interp,"no arguments needed",TCL_VOLATILE); return TCL_ERROR; } Tcl_SetObjResult(interp, Tcl_NewIntObj(CmiNumPhysicalNodes())); return TCL_OK; }
main(CkArgMsg *) { // print banner iout << iINFO << "NAMD " << NAMD_VERSION << " for " << NAMD_PLATFORM << "\n" #ifdef MEM_OPT_VERSION << iWARN << "\n" << iWARN << " *** EXPERIMENTAL MEMORY OPTIMIZED VERSION ***\n" << iWARN << "\n" #endif #if 0 << iWARN << "\n" << iWARN << " *** UNRELEASED EXPERIMENTAL VERSION ***\n" << iWARN << "\n" #endif #ifdef SPEC_DISABLED_VERSION << iINFO << "\n" << iINFO << "NAMD is a parallel, object-oriented molecular dynamics\n" << iINFO << "code designed for high-performance simulation of large\n" << iINFO << "biomolecular systems. NAMD is distributed free of\n" << iINFO << "charge and includes source code. For more information\n" << iINFO << "please visit http://www.ks.uiuc.edu/Research/namd/\n" << iINFO << "\n" << iINFO << "*********************************************************\n" << iINFO << "This version of NAMD may be distributed only as a part of\n" << iINFO << "the SPEC Workstation Benchmark and all other distribution\n" << iINFO << "is prohibited. Any use of this software is bound by\n" << iINFO << "the terms of the NAMD License, which is available at\n" << iINFO << "http://www.ks.uiuc.edu/Research/namd/license.html\n" << iINFO << "The NAMD development team will not provide support for\n" << iINFO << "any version of NAMD unless you have first registered\n" << iINFO << "and downloaded the latest version of NAMD available at\n" << iINFO << "http://www.ks.uiuc.edu/Research/namd/\n" << iINFO << "*********************************************************\n" #else << iINFO << "\n" << iINFO << "Please visit http://www.ks.uiuc.edu/Research/namd/\n" << iINFO << "for updates, documentation, and support information.\n" #endif << iINFO << "\n" << iINFO << "Please cite Phillips et al., J. Comp. Chem. 26:1781-1802 (2005)\n" << iINFO << "in all publications reporting results obtained with NAMD.\n" << iINFO << "\n" << endi; char charm_version[64]; sprintf(charm_version,"%d",CHARM_VERSION); #if CHARM_VERSION < 60500 #error "Charm++ 6.5.1 or later is required to build NAMD" #endif iout << iINFO << "Based on Charm++/Converse " << charm_version << " for " << CMK_MACHINE_NAME << "\n" << endi; iout << iINFO << "Built " << namd_build_date << " by " << namd_build_user << " on " << namd_build_machine << "\n" << endi; #ifndef NO_SOCKET char numcpus[512]; sprintf(numcpus,"%d",CkNumPes()); tbsoft_sendusage("NAMD",NAMD_VERSION,NAMD_PLATFORM,numcpus,""); #endif #if CMK_BLUEGENE_CHARM iout << iINFO << "Running on BigSim using " << CmiNumPes() << " real processors.\n" << endi; #endif iout << iINFO << "Running on " << CkNumPes() << " processors, " << CmiNumNodes() << " nodes, " << CmiNumPhysicalNodes() << " physical nodes.\n" << endi; iout << iINFO << "CPU topology information " << (CmiCpuTopologyEnabled()?"available":"unavailable") << ".\n" << endi; iout << iINFO << "Charm++/Converse parallel runtime startup completed at " << CmiWallTimer() << " s\n"<< endi; const char* memsource; memusage(&memsource); iout << iINFO << memusage_MB() << " MB of memory in use" << " based on " << memsource << "\n"; }