-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ba2488a
commit dc04299
Showing
1 changed file
with
25 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
|
||
|
||
Hardware Requirements/Optimzation | ||
-------------------- | ||
|
||
Travel demand models (TDM), as most TDM developers and users are familiar, are resource hungry, however, their system requirement varies from models for small counties to mid-size/large MPOs to state. Some of the key datasets that models are dependent on are traffic analysis zone (includes socioeconomic and demographic data), skims, highway/transit network. For larger regions, these datasets are typically large in size and can benefit greatly from using multiprocessing/multithreading at different steps of the model. It is important to recognize that there is no golden rule, however, here are some guidelines on hardware requirements to consider while developing a model or using it. | ||
|
||
- **Processor (CPU)**: Travel demand models, especially that involve large-scale simulation can benefit from multi core processors. There are several benefits of using multicores such as faster computing, multitasking and efficiency. Consider CPUs with high number of cores, strong single thread performance and higher clock speed. For example - Intel Core i9/AMD Ryzen 9 are more suitable for desktop PCs (https://www.cpubenchmark.net/desktop.html) and Xeon/EPYC are better for servers (https://www.cpubenchmark.net/server.html ). | ||
|
||
- **Memory (RAM)**: There are two things to consider when thinking about RAM requirements for the model: Capacity and Speed | ||
- Capacity: Travel demand models are known to be memory intensive, especially when dealing with skims of larger region. A minimum of 32 GB of RAM is typically recommended, though 64 GB or more would be required by models of large areas. | ||
- Speed: Faster RAM can have significant reduction in data processing time, so consider using RAM with higher MHz ratings. Higher RAM speed indicates faster data reading and writing to random access memory (RAM). | ||
|
||
- **Storage**: Solid state drives (SSD) are improved version hard disk drives (HDD). They have better read/write speeds compared to traditional hard drives. They also offer reduced load times and higher speed data-intensive operations. M.2 NVMe SSDs are the fastest SSDs and can be found on most of modern systems. It is also important to have enough storage not only for the software but also all the data that is used or generated by travel demand models. A combination of SSD and larger HDD would be more cost efficient. Active model runs can be performed on SSD and then later stored on larger HDD for future use. | ||
|
||
- **Graphics Processing Unit (GPU)**: Most of the travel demand models rely on CPU, however, certain simulations or visualizations may benefit from GPU acceleration. Depending upon which software is used for the travel demand model, a system GPU can benefit from it. | ||
|
||
- **Scalability**: As the model becomes more complex, it is recommended to scale the hardware too. Having a modular systems that allow for more flexible easy upgrade to CPU, RAM, storage and GPUs. | ||
|
||
- **Software Optimization**: During the development of the travel demand model, several techniques can be used to ensure that the program uses all the resources available in the system. | ||
- Parallel processing: Build your program in such a way that it uses multi-core processing. This will have significant impact on performance on modern hardware. | ||
- Memory Management: Make sure the program uses the memory efficiently which can help reducing hardware demands and make the program accessible to broader range of systems. | ||
- Cross-Platform Compatibility: Building a model that is compatible with different hardware configurations (eg. Desktop, servers, cloud) will ensure that user can choose hardware that best fits their needs. | ||
|
||
- **Cloud Computing**: AWS, Azure and Google Cloud offer myriad powerful virtual machines which can be cost effective option. The developer/modeler can test and run their models on cloud servers to test on various configurations to find the most effective server configuration. |