ZFP-based compressor implementation
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | private, | save | :: | WARNING_ISSUED | = | .false. |
ZFP-based compressor implementation
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int8), | public | :: | ndims |
Number of dimensions |
|||
| integer(kind=int64), | public | :: | storage_size |
Size of storage per element |
|||
| real(kind=real64), | public | :: | compressed_rate |
Accumulated compression rate |
|||
| integer(kind=int64), | public | :: | execution_count |
Number of compression executions |
|||
| integer(kind=int32), | public | :: | dims_permutation |
Dimension permutation flag |
|||
| logical, | private | :: | is_complex |
Indicates if the data type is complex |
|||
| logical, | private | :: | is_fixed_rate | ||||
| integer(kind=int64), | private | :: | imag_offset |
Byte offset for imaginary part in complex data |
|||
| type(dtfft_compression_config_t), | private | :: | config |
Compression configuration parameters |
|||
| type(zfp_exec_policy), | private | :: | policy |
ZFP execution policy (serial or CUDA) |
|||
| type(zfp_type), | private | :: | scalar_type |
ZFP scalar type (float or double) |
|||
| type(cudaEvent), | private | :: | event |
| procedure, public, non_overridable, pass(self) :: create | ../../ Initializes the compressor with given parameters |
| procedure, public, non_overridable, pass(self) :: compress | ../../ Compresses the input data and returns the compressed size |
| procedure, public, non_overridable, pass(self) :: decompress | ../../ Decompresses the input data into the output buffer |
| procedure, public, non_overridable, pass(self) :: get_average_rate | ../../ Returns the average compression rate over all executions |
| procedure, public :: create_private => create | ../../ Initializes the ZFP compressor with given configuration |
| procedure, public :: compress_private => compress | ../../ Compresses the input data using ZFP |
| procedure, public :: decompress_private => decompress | ../../ Decompresses the input data using ZFP |
| procedure, public :: destroy | ../../ Cleans up the compressor resources |
| procedure, public :: sync | |
| procedure, public :: pre_sync | |
| procedure, public :: post_sync | |
| procedure, public :: init | ../../ Initializes ZFP stream and field for compression/decompression |
Initializes the ZFP compressor with given configuration
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(compressor_zfp), | intent(inout) | :: | self |
Compressor instance |
||
| type(dtfft_compression_config_t), | intent(in) | :: | config |
Compression settings |
||
| type(dtfft_platform_t), | intent(in) | :: | platform |
Target platform (CPU or CUDA) |
||
| type(MPI_Datatype), | intent(in) | :: | base_type |
MPI data type |
Compresses the input data using ZFP
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(compressor_zfp), | intent(inout) | :: | self |
Compressor instance |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Array dimensions |
||
| type(c_ptr), | intent(in) | :: | in |
Pointer to input data |
||
| type(c_ptr), | intent(in) | :: | out |
Pointer to output buffer |
||
| type(dtfft_stream_t), | intent(in) | :: | stream |
Stream handle |
Initializes ZFP stream and field for compression/decompression
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(compressor_zfp), | intent(inout) | :: | self |
Compressor instance |
||
| type(c_ptr), | intent(in) | :: | uncompressed_ptr |
Pointer to uncompressed data |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Array dimensions |
||
| logical, | intent(in) | :: | is_decompression |
Decompression flag. Used only in omp build |
||
| type(zfp_stream), | intent(out) | :: | zfp |
ZFP stream |
||
| type(zfp_field), | intent(out) | :: | field |
ZFP field |
Decompresses the input data using ZFP
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(compressor_zfp), | intent(inout) | :: | self |
Compressor instance |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Array dimensions |
||
| type(c_ptr), | intent(in) | :: | in |
Pointer to compressed data |
||
| type(c_ptr), | intent(in) | :: | out |
Pointer to output buffer |
||
| type(dtfft_stream_t), | intent(in) | :: | stream |
Stream handle |
Cleans up the compressor resources
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(compressor_zfp), | intent(inout) | :: | self |
Compressor instance |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(compressor_zfp), | intent(inout) | :: | self |
Abstract kernel |
||
| type(dtfft_stream_t), | intent(in) | :: | stream |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(compressor_zfp), | intent(inout) | :: | self |
Abstract kernel |
||
| type(dtfft_stream_t), | intent(in) | :: | stream |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(compressor_zfp), | intent(inout) | :: | self |
Abstract kernel |
||
| type(dtfft_stream_t), | intent(in) | :: | stream |