| 17 | |
| 18 | == Output file partitions (subfiles) == |
| 19 | |
| 20 | If you're running on an IBM BG/Q supercomputer, then the number of subfiles (partitions) chosen is based on the I/O nodes in an automatic way. Otherwise, by default, the GenericIO library picks the number of subfiles based on a fairly-naive hostname-based hashing scheme. This works reasonably-well on small clusters, but not on larger systems. On a larger system, you might want to set these environmental variables: |
| 21 | |
| 22 | {{{ |
| 23 | GENERICIO_PARTITIONS_USE_NAME=0 |
| 24 | GENERICIO_RANK_PARTITIONS=256 |
| 25 | }}} |
| 26 | |
| 27 | Where the number of partitions (256 above) determines the number of subfiles used. If you're using a Lustre file system, for example, an optimal number of files is: |
| 28 | |
| 29 | # of files * stripe count ~ # OSTs |
| 30 | |
| 31 | On Titan, for example, there are 1008 OSTs, and a default stripe count of 4, so we use approximately 256 files. |