Tipsy

Compression

With ASCII Aux Files

Isolated Disc Outputs

  • Speed here can be WILDLY different. I’m taking a tarball that is originally 51492 MiB.
AlgorithmDefault Size (MiB)Max Compress Size (MiB)
gzip2105720894
zstd2027318641
lz43042724737
lzma1840118385
bz21934519345
xz18401 (SLOW)18385
lrzip1843318427
lzop2862524401
  • lzma is the standout winner
  • bz2 looks to be nearly as good, and is widely available

ChaNGa/Gasoline starlogs

Because star formation events happen once, and quantities associated with formation (such as the density of the gas particle the star formed from) do not change, it is inefficient to store these in the data structure for a star particle. It is much better to just write this out once, reducing the overall memory usage and the size of snapshots. ChaNGa and gasoline both use a common “starlog” format, typically written out as achOutName.starlog. Depending on the configuration options, this starlog can have the following format, with a couple possible sizes:

Record SizeGasoline starlog formatChaNGa starlog format
884-byte iorders, no H2 Cooling, no SFEventCritNONE
964-byte iorders, H2 Cooling, no SFEventCrit8-bit iorders, no H2 cooling
1044-byte iorders, no H2 Cooling, SFEventCrit8-bit iorders, H2 cooling
1124-byte iorders, H2 Cooling, SFEventCritNONE

ChaNGa starlogs

All Cases: 4 byte “record size” integer Then for every star formation event.

Cooling: 104 bytes

FieldTypeSize
iOrdStarint64_t8
iOrdGasint64_t8
timeFormdouble8
rForm[3]double[3]24
vForm[3]double[3]24
massFormdouble8
rhoFormdouble8
TFormdouble8
H2FracFormdouble8

Any other cooling mode: 96 bytes

FieldTypeSize
iOrdStarint64_t8
iOrdGasint64_t8
timeFormdouble8
rForm[3]double[3]24
vForm[3]double[3]24
massFormdouble8
rhoFormdouble8
TFormdouble8

Gasoline Starlogs

Gasoline can produce a slightly different output:

Cooling: 96 bytes

FieldTypeSize
iOrdStarint4
iOrdGasint4
timeFormdouble8
rForm[3]double[3]24
vForm[3]double[3]24
massFormdouble8
rhoFormdouble8
TFormdouble8
H2FracFormdouble8

Any other cooling mode: 88 bytes

FieldTypeSize
iOrdStarint4
iOrdGasint4
timeFormdouble8
rForm[3]double[3]24
vForm[3]double[3]24
massFormdouble8
rhoFormdouble8
TFormdouble8

If SFEVENTCRIT is enabled, this adds another two doubles after TForm: tcool and tdyn