An exa-scale array for .NET
Go to file
2020-08-22 20:30:22 +02:00
.idea/.idea.ExaArray Init 2020-07-28 19:05:05 +02:00
ExaArray Version 1.4.0 2020-08-22 20:30:22 +02:00
ExaArrayTests Added test case for store and load 2020-08-22 20:26:47 +02:00
.gitignore Initial commit 2020-07-28 16:27:26 +02:00
ExaArray.sln Init 2020-07-28 19:05:05 +02:00
LICENSE Update 'LICENSE' 2020-07-28 16:29:42 +02:00
README.md Added text about store and load 2020-08-22 20:29:37 +02:00

ExaArray

ExaArray is a .NET library for exa-scale array-like structures. By using this library, it becomes possible to add up to 4.6 quintillion i.e. 4,607,183,514,018,780,000 elements into a one-dimensional array. When using byte for T, this would need approx. 4 EB of memory. The two-dimensional array can grow up to 18.4 quintillion i.e. 18,446,744,073,709,551,615 elements, though.

Extending the data structure performs as O(n) with O(m+n) of memory. Accessing the data performs as O(1), though. For the generic type T, any .NET type can be used: The ExaArray uses managed memory.

Storing to and loading from an arbitrary stream is supported. The data stored in this way should never be part of a public API. Serializing and deserializing is not secure: an attacker can manipulate the data in a targeted manner to compromise the API server, etc.