NAMD
Public Member Functions | List of all members
main Class Reference
Inheritance diagram for main:

Public Member Functions

 main (CkArgMsg *msg)
 

Detailed Description

Definition at line 116 of file main.C.

Constructor & Destructor Documentation

main::main ( CkArgMsg *  msg)
inline

Definition at line 119 of file main.C.

References endi(), iINFO(), iout, iWARN(), memusage(), memusage_MB(), namd_build_date, namd_build_machine, namd_build_user, NAMD_die(), and tbsoft_sendusage().

120  {
121 
122  // print banner
123  iout << iINFO << "NAMD " << NAMD_VERSION << " for " << NAMD_PLATFORM
124  << "\n"
125 #ifdef MEM_OPT_VERSION
126  << iWARN << "\n"
127  << iWARN << " *** EXPERIMENTAL MEMORY OPTIMIZED VERSION ***\n"
128  << iWARN << "\n"
129 #endif
130 #if 0
131  << iWARN << "\n"
132  << iWARN << " *** UNRELEASED EXPERIMENTAL VERSION ***\n"
133  << iWARN << "\n"
134 #endif
135 #ifdef SPEC_DISABLED_VERSION
136 
137  << iINFO << "\n"
138  << iINFO << "NAMD is a parallel, object-oriented molecular dynamics\n"
139  << iINFO << "code designed for high-performance simulation of large\n"
140  << iINFO << "biomolecular systems. NAMD is distributed free of\n"
141  << iINFO << "charge and includes source code. For more information\n"
142  << iINFO << "please visit http://www.ks.uiuc.edu/Research/namd/\n"
143  << iINFO << "\n"
144  << iINFO << "*********************************************************\n"
145  << iINFO << "This version of NAMD may be distributed only as a part of\n"
146  << iINFO << "the SPEC Workstation Benchmark and all other distribution\n"
147  << iINFO << "is prohibited. Any use of this software is bound by\n"
148  << iINFO << "the terms of the NAMD License, which is available at\n"
149  << iINFO << "http://www.ks.uiuc.edu/Research/namd/license.html\n"
150  << iINFO << "The NAMD development team will not provide support for\n"
151  << iINFO << "any version of NAMD unless you have first registered\n"
152  << iINFO << "and downloaded the latest version of NAMD available at\n"
153  << iINFO << "http://www.ks.uiuc.edu/Research/namd/\n"
154  << iINFO << "*********************************************************\n"
155 #else
156  << iINFO << "\n"
157  << iINFO << "Please visit http://www.ks.uiuc.edu/Research/namd/\n"
158  << iINFO << "for updates, documentation, and support information.\n"
159 #endif
160 << iINFO << "\n"
161 << iINFO << "Please cite Phillips et al., J. Chem. Phys. 153:044130 (2020) "
162  "doi:10.1063/5.0014475\n"
163 << iINFO << "in all publications reporting results obtained with NAMD.\n"
164 << iINFO << "\n"
165  << endi;
166 
167  char charm_version[64];
168  sprintf(charm_version,"%d",CHARM_VERSION);
169 
170 #if CHARM_VERSION < 60500
171 #error "Charm++ 6.5.1 or later is required to build NAMD"
172 #endif
173 
174  iout << iINFO << "Based on Charm++/Converse " << charm_version
175  << " for " << CMK_MACHINE_NAME << "\n" << endi;
176 
177  iout << iINFO << "Built " << namd_build_date << " by "
178  << namd_build_user << " on " << namd_build_machine << "\n"
179  << endi;
180 #ifndef NO_SOCKET
181  char numcpus[512];
182  sprintf(numcpus,"%d",CkNumPes());
183  tbsoft_sendusage("NAMD",NAMD_VERSION,NAMD_PLATFORM,numcpus,"");
184 #endif
185 
186 #if CMK_BLUEGENE_CHARM
187  iout << iINFO << "Running on BigSim using " << CmiNumPes() << " real processors.\n" << endi;
188 #endif
189  iout << iINFO << "Running on " << CkNumPes() << " processors, "
190  << CmiNumNodes() << " nodes, "
191  << CmiNumPhysicalNodes() << " physical nodes.\n" << endi;
192  iout << iINFO << "CPU topology information " << (CmiCpuTopologyEnabled()?"available":"unavailable") << ".\n" << endi;
193  iout << iINFO << "Charm++/Converse parallel runtime startup completed at "
194  << CmiWallTimer() << " s\n"<< endi;
195  const char* memsource;
196  memusage(&memsource);
197  iout << iINFO << memusage_MB() << " MB of memory in use"
198  << " based on " << memsource << "\n";
199 
200 #if CMK_SMP
201  if ( CmiNumNodes() > 1 && CkNumPes() == CmiNumNodes() ) {
202  NAMD_die("SMP build launched as multiple single-thread processes. Use ++ppn to set number of worker threads per process to match available cores, reserving one core per process for communication thread.");
203  }
204 #endif
205  }
std::ostream & iINFO(std::ostream &s)
Definition: InfoStream.C:107
const char * namd_build_date
int tbsoft_sendusage(const char *program, const char *versionnum, const char *platform, const char *numcpus, const char *miscinfo)
Definition: main.C:71
const char * namd_build_machine
std::ostream & iWARN(std::ostream &s)
Definition: InfoStream.C:108
#define iout
Definition: InfoStream.h:87
double memusage_MB()
Definition: memusage.h:13
const char * namd_build_user
void NAMD_die(const char *err_msg)
Definition: common.C:83
unsigned long memusage(const char **source)
Definition: memusage.C:158
infostream & endi(infostream &s)
Definition: InfoStream.C:38

The documentation for this class was generated from the following file: