> For the complete documentation index, see [llms.txt](https://hmdc.gitbook.io/sid/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hmdc.gitbook.io/sid/determining-resource-requirements.md).

# Determining Resource Requirements

Sid provides (theoretically) unlimited computing resources, though it is worthwhile to economize and consider the necessary scale of your application.

## CPU

* Multi-threading
* Parallelization
* Refactoring

## RAM

### Static analysis

Find the ***main*** looping portion of your application, and determine the total size (in bytes) of all your variables.  Are you reading in chunks of data (e.g., line-by-line, item-by-item), or do you slurp it all in in one single go?

### Analyze scalability

Run your application with only a tiny subset of your data and measure CPU, RAM, and disk usage.   How will the application scale?  Constant, linear, quadratic, exponential?

### Binary Search

Use [binary search](https://rosettacode.org/wiki/Binary_search) to find the optimal resource settings:

![](https://1259840169-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lp-J4FRkNjGVUHcJnwd%2F-LpB_gBBcM5rG3X45HhL%2F-LpBjzVSyCve2tI4Ncbi%2FScreen%20Shot%202019-09-19%20at%2011.38.08%20PM.png?alt=media\&token=fc8e1655-f1d9-4ad6-baba-30ac9057d5e3)

## Disk

* Ephemeral Storage
* Google Drive
* Azure (coming soon)
