What resources when

From Stat DS Computing Wiki

To try to answer the common question “what resources do I have access to and when should I use them”, below we present to approaches to answering the question. The first of which focuses on what resources exist and what they should be used for and the second tries to answer resource needs / current computing problems with resources to fit those needs/ solve those problems.

After you’re found the resource you think you’d like to use (or even when you’re still deciding), we strongly encourage you to attend an computing office hour to help discuss all the things you should be thinking about and get you on the right track quickly.

What computing resources do you have access to

Your personal computer

Your personal computer is great for small jobs that take less than 30 minutes, uses few cores and not too much RAM.

Pro:

  1. Naturally the easiest tool to use since it’s yours. Best for short jobs that require only a few cores.

Cons:

capacity:

    • few cores: 4-8 cores common on laptops<ref>

      From laptopmag

      </ref> (multiply processes per cors means = 8-16 “cores”).
    • low RAM: 4-32 GB of common on laptops<ref>

      From digitaltrends

      </ref>, used across all cores
    • “no” GPUs: you don’t have GPUs that are optimized for Deep Learning

other usage: You often want to use your computer for other things (and it’s built for that exact thing). It’s possible you or someone you know has has had to leave their laptop at home for the day/ run lode oernight When they need to run something intensive -OR- long. But you need that laptop for other work / homework…

The below XKCD comic doesn’t have to be you… (though breaks are good):

https://xkcd.com/303/


Conclusion: Your personal computer isn’t the best for when doing a lot of computing and its easy to put jobs elsewhere!

Common use-cases

  1. Most class projects
  2. Non-data problems
  3. Non-complex structure problems

Associated Articles:

The hydras (the department servers)

The departmental servers should be seen as a “sandbox”. You can experiment with lots of things on the servers and it doesn’t cost you much to do. The hydras have a decent amount of RAM per core (much more than your personal computer), but often it won’t run a lot faster than if you put you’re computer aside and did the same thing on it (though a large pro is you don’t have to stop using your own computer when running jobs on the hydras).

Pros:

  1. Best for long but smaller core jobs
  2. Decent amount of RAM per core (32 GBs)
  3. Very low barrier to entry (aka easy to get started)
  4. File management system shares across different hydra servers

Cons:

  1. usage: The department server is a bit of a “wild-west” in terms of usage (it varies how many people use it at a given time)
  2. cores per server: the number of cores per server is only 12, and currently you can’t run jobs across multiple cores easily

Conclusion: Great place to start for more intensive computing.

Associated Articles:

PSC (Pittsburgh supercomputer center)

The Pittsburgh supercomputer center provides supercomputers than have massive amounts of cores (but also can find some with large RAMs and GPUs). Generally speaking, the supercomputing resources are often used when you have extremely parallelizable code that would take a very long time if you ran it on just a few cores (e.g. your computer or a few hydras).

Pros:

  1. A massive amount of cores and RAM that can be leveraged for extremely parallelizable computing
  2. Easier to access in the statistics department

Cons:

  1. Requires learning of new job management system (though quick to learn - see [Slurm])
  2. Some options to access the resources can take time or require going through your advisor
  3. currently (2021) has been having problems with servers crashing

Associated Articles:

Azure

Getting an virtual Azure machine is often only needed if you need access to GPUs and you want complete prioritization of your jobs. There are other reasons to utilize Azure, but there are start-up costs and there are only so many department credits to go around (that doesn’t mean you shouldn’t use it).

Pros:

  1. personal virtual computing that can be used only by you (maybe also a small lab group)
  2. very flexibly it what is available (e.g. #cores, RAM, GPU vs CPU, etc)

Cons:

  1. Start-up costs are higher (requires more understanding of system administration)
  2. Requires more clear understanding of the costs as it isn’t free
  3. Some resources might not be available relative to department allocations

Associated Articles:

Computing resource flowchart

These flow charts try to help capture what’s available and when you might use them.

After choosing a cluster that supports your workload, you can visit the links below to view the current resource usage of each server and any currently logged in users.

Choose a server with the least amount of users and lowest resource usage.

Problems on your personal computer?

                             ┌─────────────────────────────────────┐
                             │                                     │
                             │    your personal computer is/are:   │
                             │                                     │
                             └─────────────────┬───────────────────┘
                                               │
                ┌──────────────────────────────┼───────────────────────────────┐
                │                              │                               │
   ┌────────────▼────────────┐     ┌───────────▼───────────┐      ┌────────────▼─────────────┐
   │                         │     │                       │      │                          │
   │ A job slowing down your │     │ Jobs taking too long? │      │ Jobs crashing computer?  │
   │   personal computer?    │     │                       │      │  (using too much RAM?)   │
   │                         │     └───────────┬───────────┘      │                          │
   └────────────┬────────────┘                 │                  └────────────┬─────────────┘
                │                              │                               │
                │                ┌─────────────┴──────────────┐                │
                │                │                            │                │
                └──────────┬─────┼─────────────────────┐      │   ┌────────────┴───────────┐
                           │     │                     │      │   │                        │
             ┌─────────────▼─────▼──────┐   ┌──────────▼──────▼───▼───┐                    │
             │                          │   │                         │      ┌─────────────▼───────────┐
             │  Can it be broken into   │   │ do you think your code  │      │ How much RAM could you  │
             │    multiple pieces?      │   │    is inefficient?      │      │    use per process?     │
             │                          │   │                         │      │                         │
             └───────────┬──────────────┘   └──▲──────────┬───────────┘      └───────────┬─────────────┘
                         │                     │          │                              │
               ┌─────────┴─────┐               │    ┌─────┴────┐                 ┌───────┴───────┐
               │               │               │    │          │                 │               │
          ┌────▼─┐          ┌──▼──┐     ┌──────┘ ┌──▼──┐    ┌──▼───┐         ┌───▼────┐      ┌───▼─────┐
          │ yes  │          │ no  │     │        │ yes │    │  no  │         │< 32 GB │      │ > 32 GB │
          └───┬──┘          └──┬──┘     │        └──┬──┘    └──────┘         └───┬────┘      └────┬────┘
              │                │        │           │                            │                │
       ┌──────▼──────────┐     │        │   ┌───────▼─────┐                      │                │
       │ parallelize it! │     │        └───┤ profile it! │                      │                │
       └─────┬───────────┘     │        ▲   └──────┬──────┘                      │                │
             │                 │        │          │                        ┌────▼─────┐    ┌─────▼────────┐
             │                 │     ┌──┘          │                        │  hydras  │    │ PSC or Azure │
             │                 │     │             │                        └──────────┘    └──────────────┘
             │                 │     │             │
             │                 │     │             │
             │                 │     │             │
             │                 │     │             │
┌────────────▼──────────┐      │     │  ┌──────────▼───────────┐
│ how many cores could  │      │     └──┤ speed it up with C++ │
│   you benefit from?   │      │        └──────────────────────┘
└──────────┬────────────┘      │
           │                   │
           │                   │
           │                   │
           │                   │
           │           ┌───────▼───────────┐
           │           │ put it on a hydra │
           │           │   and move on.    │
           │           └───────────────────┘
           │
       ┌───┴───────────┬───────────────┐
       │               │               │
┌──────▼─────┐  ┌──────▼────┐     ┌────▼───────┐
│ < 12 cores │  │> 12 cores │     │>> 12 cores │
└─────┬──────┘  └────┬──────┘     └─────┬──────┘
      │              │                  │
      │              │                  │
      │       ┌──────▼─────────┐      ┌─▼───┐
 ┌────▼──┐    │    multiple    │      │PSC  │
 │ hydra │    │     hydras     │      └─────┘
 └───────┘    │      or        │
              │  PSC / Azure   │
              └────────────────┘

Building a big Neural Network?

                ┌───────────────────────┐
                │ Need to train a large │
                │    Neural Network?    │
                └───────────┬───────────┘
                            │
                            │
                    ┌───────▼───────┐
                    │Do you really? │
                    └───────┬───────┘
                            │
                            │
                  ┌─────────┴───────────┐
                  │                     │
              ┌───▼─┐           ┌───────▼─────┐
              │ yes │           │ no a linear │
              └──┬──┘           │ regression  │
                 │              │ should work │
                 │              └─────────────┘
                 │
                 │
┌────────────────▼───────────────────┐
│              Azure                 │
│     email remarks@stat.cmu.edu     │
│ directly due to access constraints │
└────────────────────────────────────┘

Don’t have a computer?

                                     ┌─────────────────────────┐
                                     │                         │
                                     │ Don't have a computer / │
                                     │  computer in the shop?  │
                                     │                         │
                                     └────────────┬────────────┘
                                                  │
                                     ┌────────────▼─────────────┐
                                     │                          │
                                     │ how long don't you have  │
                                     │       a computer?        │
                                     │                          │
                                     └────────────┬─────────────┘
                                                  │
                                ┌─────────────────┴──────────────────────┐
                                │                                        │
                      ┌─────────▼──────────┐                   ┌─────────▼──────────┐
                      │                    │                   │                    │
                      │  multiple weeks?   │                   │  just a few days?  │
                      │                    │                   │                    │
                      └─────────┬──────────┘                   └─────────┬──────────┘
                                │                                        │
                                │                                        │
                                │                                        │
                                │                           ┌────────────▼─────────────┐
                 ┌──────────────▼───────────────┐           │                          │
                 │                              │           │ University computer labs │
                 │ the department has loaners!  │           │            +             │
                 │                              │           │   unix.cmu.edu server    │
                 │ email remarks@stat.cmu.edu / │           │                          │
                 │        visit Carl            │           └──────────────────────────┘
                 └──────────────────────────────┘

<references />

From laptopmag
     2. ↑ From digitaltrends