Installing TCE
(→Copy perm files) |
|||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | == | + | === Installing Un-fused Code Generator === |
− | + | ||
− | == | + | |
− | + | ||
− | + | ||
To get the unfused code, go to the main branch(tag:release-08012005), | To get the unfused code, go to the main branch(tag:release-08012005), | ||
− | + | ==== Select an Input File ==== | |
− | + | Input file: | |
− | + | * spin-adapted ccd: ccd_adapted.eq | |
− | + | * spin-adapted ccsd: ccsd_adapted.eq | |
− | + | * spin-orbital ccd: ccd_orbital.eq | |
− | + | ||
− | + | In the input files, the range of O and V are the upper bound of the real O and V. Users would set the proper number for them. If they are set to be smaller than the real number, the TCE system may generate un-executable code. If they are set to be too large, the TCE system may generate sub-optimal solution. | |
+ | |||
+ | ==== Select Compiler Flags ==== | ||
− | + | Compile option: -o3 -m0 --symmetry | |
− | + | ==== Select Debugging Options ==== | |
+ | If you want to generate code with debug info(print some intermedaite | ||
result in computation), go to edu/ohio_state/cis/tce/symmetry, set the | result in computation), go to edu/ohio_state/cis/tce/symmetry, set the | ||
variable debugInfo as true in AllSymCodeGen.java. Otherwise, set it | variable debugInfo as true in AllSymCodeGen.java. Otherwise, set it | ||
to false. | to false. | ||
− | + | ==== Edit Generated Code for Dense Mode operation ==== | |
+ | The current TCE system can't generate correct dense code. I first | ||
generate code without --symmetry option, then manually change it. | generate code without --symmetry option, then manually change it. | ||
− | + | ==== Copy perm files ==== | |
− | for intermediate arrays. You need to copy all perm files generated with | + | The compiler will not only generate Fortran code, but also perm files for intermediate arrays. |
− | code to execution directory. | + | You need to copy all perm files generated with code to execution directory. |
+ | === Installing fused Code Generator === | ||
To get the fused code, go to the fusion branch(tag:fusion_20061228) | To get the fused code, go to the fusion branch(tag:fusion_20061228) | ||
− | |||
− | |||
− | |||
− | + | ==== Select Input File ==== | |
− | + | * spin-adapted ccd: ccd-sym-disk.eq | |
+ | * spin-adapted ccsd: ccsd_marcel-disk.eq | ||
+ | |||
+ | ==== Select Compiler Flags ==== | ||
+ | Compile option: -o4 -m1 -t1 -f1 --symmetry -nonfusiontiling | ||
+ | |||
+ | ==== Select Debugging Options ==== | ||
+ | If you want to generate code with debug info, go to | ||
edu/ohio_state/cis/tce/symmetry, set Util.debugInfo in CodeGen.java and | edu/ohio_state/cis/tce/symmetry, set Util.debugInfo in CodeGen.java and | ||
debugInfo in Util.java as true. Otherwise, set them to false. | debugInfo in Util.java as true. Otherwise, set them to false. | ||
− | + | ==== Notes ==== | |
+ | |||
+ | The fused code doesn't include perm info. There is no perm files for | ||
fused code. | fused code. | ||
+ | |||
=== Tips === | === Tips === | ||
--------------------------------------------------------------------- | --------------------------------------------------------------------- | ||
− | + | ||
+ | ====Tip 1: source files==== | ||
Some programs have different implemental versions. | Some programs have different implemental versions. | ||
I save these different versions in $NWCHEM/src/tce/back, when you | I save these different versions in $NWCHEM/src/tce/back, when you | ||
Line 56: | Line 65: | ||
− | + | ====Tip 2: driver==== | |
− | + | ||
There are some variables in the ohio_tce_reformat.F, you need to change | There are some variables in the ohio_tce_reformat.F, you need to change | ||
Line 69: | Line 77: | ||
− | + | ||
− | + | ====Tip 3: perm ==== | |
The non-fusion codes need perm files in execution. You can find the | The non-fusion codes need perm files in execution. You can find the | ||
corresponding perm files in $NWCHEM4.7/bin/LINUX64/perm. | corresponding perm files in $NWCHEM4.7/bin/LINUX64/perm. | ||
Line 76: | Line 84: | ||
− | + | ====Tip 4: OTCE==== | |
− | + | ||
To run non-fusion code, install the OTCE library by | To run non-fusion code, install the OTCE library by | ||
$NWCHEM/src/tce/otce/GNUmakefile.nonfusion. | $NWCHEM/src/tce/otce/GNUmakefile.nonfusion. | ||
Line 85: | Line 92: | ||
between fusion and non-fusion code. | between fusion and non-fusion code. | ||
− | + | ====Tip 5: input==== | |
− | + | ||
− | + | ||
The input files can be found in $NWCHEM4.7/bin/LINUX64/input. | The input files can be found in $NWCHEM4.7/bin/LINUX64/input. | ||
Note that, for spin-adapted and spin-orbital programs, you need | Note that, for spin-adapted and spin-orbital programs, you need | ||
Line 94: | Line 99: | ||
− | |||
− | |||
− | + | ===Detailed instructions=== | |
+ | |||
+ | ====Spin-Adapted CCD with fusion, all intermediate arrays are in memory==== | ||
* source: $NWCHEM/src/tce/back/ccd_sym.fusion.inmemory.F | * source: $NWCHEM/src/tce/back/ccd_sym.fusion.inmemory.F | ||
Copy it to $NWCHEM/src/tce/ccd_sym.F for compilation | Copy it to $NWCHEM/src/tce/ccd_sym.F for compilation | ||
+ | * Perm files: No perm file | ||
+ | * Input files: | ||
+ | (smallest case): $NWCHEM/bin/LINUX64/input/test1.nw (O=5, V=2) | ||
+ | (largest case): $NWCHEM/bin/LINUX64/input/hex_med.nw (O=22, V=54) | ||
+ | |||
+ | ====Spin-Adapted CCD with fusion, some intermediate arrays are on disk==== | ||
+ | * source: $NWCHEM/src/tce/back/ccd_sym.fusion.outofcore.F | ||
+ | Copy it to $NWCHEM/src/tce/ccd_sym.F for compilation | ||
* Perm files: No perm file | * Perm files: No perm file | ||
Line 105: | Line 118: | ||
(smallest case): $NWCHEM/bin/LINUX64/input/test1.nw (O=5, V=2) | (smallest case): $NWCHEM/bin/LINUX64/input/test1.nw (O=5, V=2) | ||
(largest case): $NWCHEM/bin/LINUX64/input/hex_med.nw (O=22, V=54) | (largest case): $NWCHEM/bin/LINUX64/input/hex_med.nw (O=22, V=54) | ||
+ | |||
+ | |||
+ | ====Spin-Adapted CCD without fusion==== | ||
+ | * source: $NWCHEM/src/tce/back/ccd_sym.nonfused.spin_adapted.F | ||
+ | Copy it to $NWCHEM/src/tce/ccd_sym.F for compilation | ||
+ | |||
+ | * Perm files: $NWCHEM/bin/LINUX64/perm/ccd | ||
+ | * Input files: | ||
+ | (smallest case): $NWCHEM/bin/LINUX64/input/test1.nw (O=5, V=2) | ||
+ | (largest case): $NWCHEM/bin/LINUX64/input/hex_med.nw (O=22, V=54) | ||
+ | |||
+ | ====Spin-Orbital CCD without fusion==== | ||
+ | |||
+ | * source: $NWCHEM/src/tce/back/spin_ccd.F | ||
+ | Copy it to $NWCHEM/src/tce/spin_ccd.F for compilation | ||
+ | |||
+ | * Perm files: $NWCHEM/bin/LINUX64/perm/orbital/ccd | ||
+ | |||
+ | * Input files: | ||
+ | $NWCHEM/bin/LINUX64/input/h2o_ccd_spin_orbital.nw | ||
+ | $NWCHEM/bin/LINUX64/input/c2h4_small_ccd_orbital.nw | ||
+ | |||
+ | |||
+ | ====Spin-Adapted CCSD with fusion==== | ||
+ | |||
+ | * source: $NWCHEM/src/tce/back/ccsd.spin-adapted.fusion.F | ||
+ | Copy it to $NWCHEM/src/tce/ccsd.F for compilation | ||
+ | |||
+ | * Perm files: No perm files | ||
+ | |||
+ | * Input files: | ||
+ | $NWCHEM/bin/LINUX64/input/h2o_ccsd.nw | ||
+ | |||
+ | |||
+ | |||
+ | ====Spin-Adapted CCSD without fusion==== | ||
+ | |||
+ | * source: $NWCHEM/src/tce/back/ccsd.spin-adapted.nofusion.F | ||
+ | Copy it to $NWCHEM/src/tce/ccsd.F for compilation | ||
+ | |||
+ | * Perm files: $NWCHEM/bin/LINUX64/perm/ccsd | ||
+ | |||
+ | * Input files: | ||
+ | $NWCHEM/bin/LINUX64/input/h2o_ccsd.nw |
Latest revision as of 22:31, 13 December 2007
Contents |
Installing Un-fused Code Generator
To get the unfused code, go to the main branch(tag:release-08012005),
Select an Input File
Input file:
- spin-adapted ccd: ccd_adapted.eq
- spin-adapted ccsd: ccsd_adapted.eq
- spin-orbital ccd: ccd_orbital.eq
In the input files, the range of O and V are the upper bound of the real O and V. Users would set the proper number for them. If they are set to be smaller than the real number, the TCE system may generate un-executable code. If they are set to be too large, the TCE system may generate sub-optimal solution.
Select Compiler Flags
Compile option: -o3 -m0 --symmetry
Select Debugging Options
If you want to generate code with debug info(print some intermedaite result in computation), go to edu/ohio_state/cis/tce/symmetry, set the variable debugInfo as true in AllSymCodeGen.java. Otherwise, set it to false.
Edit Generated Code for Dense Mode operation
The current TCE system can't generate correct dense code. I first generate code without --symmetry option, then manually change it.
Copy perm files
The compiler will not only generate Fortran code, but also perm files for intermediate arrays.
You need to copy all perm files generated with code to execution directory.
Installing fused Code Generator
To get the fused code, go to the fusion branch(tag:fusion_20061228)
Select Input File
- spin-adapted ccd: ccd-sym-disk.eq
- spin-adapted ccsd: ccsd_marcel-disk.eq
Select Compiler Flags
Compile option: -o4 -m1 -t1 -f1 --symmetry -nonfusiontiling
Select Debugging Options
If you want to generate code with debug info, go to edu/ohio_state/cis/tce/symmetry, set Util.debugInfo in CodeGen.java and debugInfo in Util.java as true. Otherwise, set them to false.
Notes
The fused code doesn't include perm info. There is no perm files for fused code.
Tips
Tip 1: source files
Some programs have different implemental versions. I save these different versions in $NWCHEM/src/tce/back, when you want to run a special version, you need to copy the file to $NWCHEM/src/tce and compile it. For example, all spin-adapted ccd programs are ccd_sym.F. If you want to use the non-fusion version, copy $NWCHEM/src/tce/back/ccd_sym.nonfused.spin_adapted.F to $NWCHEM/src/tce/ccd_sym.F.
Tip 2: driver
There are some variables in the ohio_tce_reformat.F, you need to change them for different execution situations.
(1) spinmode
if you want to run spin-adapted code, set spinmode=1 if you want to run spin-orbital code, set spinmode=2
(2) maxiter: The maximal iteration for converge
Tip 3: perm
The non-fusion codes need perm files in execution. You can find the corresponding perm files in $NWCHEM4.7/bin/LINUX64/perm. You need to copy these files to execution directory for execution.
Tip 4: OTCE
To run non-fusion code, install the OTCE library by $NWCHEM/src/tce/otce/GNUmakefile.nonfusion. To run fusion code, install the OTCE library by $NWCHEM/src/tce/otce/GNUmakefile.fusion. Thus, you need to reinstall the OTCE library each time switching between fusion and non-fusion code.
Tip 5: input
The input files can be found in $NWCHEM4.7/bin/LINUX64/input. Note that, for spin-adapted and spin-orbital programs, you need different input files. For fusion and non-fusion programs, you can use the same input file.
Detailed instructions
Spin-Adapted CCD with fusion, all intermediate arrays are in memory
- source: $NWCHEM/src/tce/back/ccd_sym.fusion.inmemory.F
Copy it to $NWCHEM/src/tce/ccd_sym.F for compilation
- Perm files: No perm file
- Input files:
(smallest case): $NWCHEM/bin/LINUX64/input/test1.nw (O=5, V=2) (largest case): $NWCHEM/bin/LINUX64/input/hex_med.nw (O=22, V=54)
Spin-Adapted CCD with fusion, some intermediate arrays are on disk
- source: $NWCHEM/src/tce/back/ccd_sym.fusion.outofcore.F
Copy it to $NWCHEM/src/tce/ccd_sym.F for compilation
- Perm files: No perm file
- Input files:
(smallest case): $NWCHEM/bin/LINUX64/input/test1.nw (O=5, V=2) (largest case): $NWCHEM/bin/LINUX64/input/hex_med.nw (O=22, V=54)
Spin-Adapted CCD without fusion
- source: $NWCHEM/src/tce/back/ccd_sym.nonfused.spin_adapted.F
Copy it to $NWCHEM/src/tce/ccd_sym.F for compilation
- Perm files: $NWCHEM/bin/LINUX64/perm/ccd
- Input files:
(smallest case): $NWCHEM/bin/LINUX64/input/test1.nw (O=5, V=2) (largest case): $NWCHEM/bin/LINUX64/input/hex_med.nw (O=22, V=54)
Spin-Orbital CCD without fusion
- source: $NWCHEM/src/tce/back/spin_ccd.F
Copy it to $NWCHEM/src/tce/spin_ccd.F for compilation
- Perm files: $NWCHEM/bin/LINUX64/perm/orbital/ccd
- Input files:
$NWCHEM/bin/LINUX64/input/h2o_ccd_spin_orbital.nw $NWCHEM/bin/LINUX64/input/c2h4_small_ccd_orbital.nw
Spin-Adapted CCSD with fusion
- source: $NWCHEM/src/tce/back/ccsd.spin-adapted.fusion.F
Copy it to $NWCHEM/src/tce/ccsd.F for compilation
- Perm files: No perm files
- Input files:
$NWCHEM/bin/LINUX64/input/h2o_ccsd.nw
Spin-Adapted CCSD without fusion
- source: $NWCHEM/src/tce/back/ccsd.spin-adapted.nofusion.F
Copy it to $NWCHEM/src/tce/ccsd.F for compilation
- Perm files: $NWCHEM/bin/LINUX64/perm/ccsd
- Input files:
$NWCHEM/bin/LINUX64/input/h2o_ccsd.nw