All Firefly versions can take optional command line arguments. The supported format of command line is as follows:
firefly [optional command line options in any order] [optional list of working directories]
Firefly accepts both -option and /option syntax. All options are case-insensitive.
The list of most widely used command line options is given below:
Specifies input file to use. Filename is the complete absolute name of the file to be used as input. This file will be read in, optionally preprocessed (in the case it contains any preprocessing directives), and result will be copied into the assigned working directory of the master Firefly process using the plain "input" filename. If this option is omitted, the file named "input" will be searched for in the assigned working directory of the master Firefly process, and used directly as the input file to Firefly.
Specifies output file to use. Filename is the complete absolute name of the file to be used as output. If this option is omitted, output will be sent to standard output (stdout) device.
Specifies the complete absolute location and/or name of the external basis set library file. If the filename is given, it will be used to read in the external basis sets. If the filename was not found, Firefly tries to interpret it as path and looks for file called "BASIS.LIB" at this location.
Directs Firefly to use the specified path as the template to create per-instance unique temporary working directories to be used to store all the intermediate working files.
Linux specific: directs Firefly to copy runtime extension files (pcgp2p.ex, fastdiag.ex, and optionally p4stuff.ex) into its working directory(ies) from the location specified by path.
Directs Firefly to remove all the temporary scratch files opened using FSF routines at the end of the job.
Forces Firefly execution in the presence of the old PUNCH or IRCDATA files. Windows specific: also forces execution if the assigned working directory is on the network drive or is the root directory of the volume (e.g., C:\).
Redirects all the text output files (PUNCH, IRCDATA, etc...) from working directory to the directory where the main output file resides.
Changes naming convention used for PUNCH and IRCDATA files. Provided that output filename was set using -o option, the last extension of this name, if any, will be removed and then .dat/.irc extension will be added to the end to form the filename to use instead of plain PUNCH or IRCDATA names.
Specifies the mode used to work with primary dictionary file DICTNRY. Mode is a number, it can be one of 0, 1, or 2.
Mode 0 means the default strategy is used to handle requests to DICTNRY file.
Mode 1 increases the size of messages used to broadcast contents of DICTNRY file to the slave processes. This may reduce overhead of communications on some interconnects and/or for some MPI implementations resulting in better performance and scalability.
Mode 2 allows DICTNRY file to be replicated over all slaves. This mode completely eliminates overhead caused by all DICTNRY-related communications by the cost of performing some extra I/O. Typically, this is the fastest and the best scalable mode.
Allows one to override the automatically detected number of physical cores per CPU. Useful when running Firefly on buggy processors, or in the virtualized environment like Hyper-V etc... . Passing correct value (in the case it was not properly detected automatically) will generally improve Firefly's performance.
Allows one to override the automatically detected number of active logical cores per single physical core. Useful when running Firefly on buggy processors, or in the virtualized environment like Hyper-V etc... . Passing correct value (in the case it was not properly detected automatically) will generally improve Firefly's performance.
Windows specific: Allows Firefly to use large memory pages. The hardware and OS must support large pages, and user account must have enough rights to allow Firefly to allocate large pages. Otherwise, this option will be ignored. Running in large pages mode, Firefly prints information message on their use at the beginning of its output.
Disables validity check of the command line arguments (e.g., check for valid names of files and directories, etc...) passed to Firefly.
Forces purely sequential execution avoiding any MPI calls even if initially launched in parallel.
Directs Firefly to trace each MPI call on each node. This will create additional pseudo-output files for all slaves.
Directs Firefly to gather some real-time profiling statistics. This option is useful while fine-tuning the performance and provides some insight on the possible performance bottlenecks.
The optional list of working directories, if any, must follow the list of command-line options. It has no effect if the -t < path > option was already specified. However, if this option is not given, one must provide the list of working directories when running Firefly in parallel mode. The format of this list is very simple:
DIR0 DIR1 DIR2 ... DIRn-1
One must specify exactly the same number of directories as the total number of Firefly instances is. For example, to run Firefly in parallel on 16 cores, one has to specify sixteen directories. The master instance of the parallel Firefly process will use DIR0, the first slave will use DIR1, and so on. Unlike temporary directories created using -t < path > option, the explicitly passed directories must exist and have proper access rights prior to the Firefly's execution, as they will not be created automatically!
In most cases, it is much more convenient to use -t < path > syntax; however, there are some situations when the old-style "directories list" syntax is very helpful.
Last updated: March 18, 2009