NorESMhub / noresm-land-sites-platform

NorESM Land Sites Platform (NorESM-LSP) for site-level simulation over land with CLM-FATES
https://noresmhub.github.io/noresm-land-sites-platform/
MIT License
13 stars 14 forks source link

A question about prerequisites in the User guide #173

Open ziu1986 opened 1 year ago

ziu1986 commented 1 year ago

Is there any way to run the platform not using docker-desktop?

For running docker-desktop KVM is a prerequisite (installed via sudo apt-get install qemu-system-x86).

$ kvm-ok
INFO: Your CPU does not support KVM extensions
INFO: For more detailed results, you should run this as root
HINT:   sudo /usr/sbin/kvm-ok

To use KVM and docker-desktop the user needs a CPU that supports virtualization and/or virtualization support has to be switched on (in the BIOS presumably).

Machine tested

OS: Ubuntu 22.04.2 LST Hardware model: Hewlett-Packard HP EliteBook 840 G2 Processor: Intel® Core™ i7-5600U CPU @ 2.60GHz × 4

$ lscpu
Architecture:           x86_64
  CPU op-mode(s):       32-bit, 64-bit
  Address sizes:        39 bits physical, 48 bits virtual
  Byte Order:           Little Endian
CPU(s):                 4
  On-line CPU(s) list:  0-3
Vendor ID:              GenuineIntel
  Model name:           Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz
    CPU family:         6
    Model:              61
    Thread(s) per core: 2
    Core(s) per socket: 2
    Socket(s):          1
    Stepping:           4
    CPU max MHz:        3200,0000
    CPU min MHz:        500,0000
    BogoMIPS:           5187.66
    Flags:              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
                         cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht
                         tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_p
                        erfmon pebs bts rep_good nopl xtopology nonstop_tsc cpui
                        d aperfmperf pni pclmulqdq dtes64 monitor ds_cpl smx est
                         tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2
                        apic movbe popcnt tsc_deadline_timer aes xsave avx f16c 
                        rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid
                        _single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi
                        1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap in
                        tel_pt xsaveopt dtherm ida arat pln pts md_clear flush_l
                        1d
Caches (sum of all):    
  L1d:                  64 KiB (2 instances)
  L1i:                  64 KiB (2 instances)
  L2:                   512 KiB (2 instances)
  L3:                   4 MiB (1 instance)
NUMA:                   
  NUMA node(s):         1
  NUMA node0 CPU(s):    0-3
Vulnerabilities:        
  Itlb multihit:        KVM: Mitigation: VMX unsupported
  L1tf:                 Mitigation; PTE Inversion
  Mds:                  Mitigation; Clear CPU buffers; SMT vulnerable
  Meltdown:             Mitigation; PTI
  Mmio stale data:      Unknown: No mitigations
  Retbleed:             Not affected
  Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:           Mitigation; usercopy/swapgs barriers and __user pointer 
                        sanitization
  Spectre v2:           Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP
                         conditional, RSB filling, PBRSB-eIBRS Not affected
  Srbds:                Mitigation; Microcode
  Tsx async abort:      Mitigation; Clear CPU buffers; SMT vulnerable
evalieungh commented 1 year ago

Thanks for reporting this. As far as I know, Docker is necessary to run the LSP. One way to get around using it on your own machine, could be to set up another level of virtualisation: create a virtual machine using some other software that works, and then install Docker there. I have done this with a virtual machine from NREC, but it is then running on their cloud/server and not on my local computer. It requires some more computer skills to set this up and connect to the virtual machine, but at least it's doable.

I think it should be possible to create the containers the LSP needs with other containerization software than Docker, but I'm not sure how to do that and it might still face the same problem if your computer does not allow virtual machines on it. For example, the Canadian CLASSIC model uses a Singularity container (see Melton et al. 2020)

ziu1986 commented 1 year ago

Thanks, @evalieungh, for the swift answer.

This issue may, indeed, be a pitfall for less experienced users.

For more clarification: docker engine (Docker version 20.10.21, build 20.10.21-0ubuntu1~22.04.3) is working perfectly fine on my machine but docker-desktop has, as reported, this prerequisite that may cause troubles.

I may go ahead trying to run on docker engine only.