To try out the following instructions, users want to log into their HPCC account via ssh
, and then preferentially connect to a node by initializing an interactive srun
session. The latter mimics the best practices for a real workflow but is not necessary for this basic exercise. If Nvim-R is not installed in a user’s account yet, then configure it with the Install_Nvim-R_Tmux
command as outlined here.
srun --x11 --partition=short --mem=2gb --cpus-per-task 4 --ntasks 1 --time 1:00:00 --pty bash -l
- Under
--partition
it is important to assign the name of a partition a user has access to
- Most users have access to:
short
, batch
, intel
and highmem
- Users of labs owning computer nodes also can access:
<pi_name>lab
- For more details on argument settings for
srun
, see here
Download R_for_HPC_demo.R
or nvimr_demo.R
file to you HPCC account as follows.
wget https://raw.githubusercontent.com/tgirke/GEN242/main/static/custom/slides/R_for_HPC/demo_files/R_for_HPC_demo.R
wget https://raw.githubusercontent.com/tgirke/GEN242/main/static/custom/slides/R_for_HPC/demo_files/nvimr_demo.R
[ Scroll down to continue ]
Open R_for_HPC_demo.R
or nvim_demo.R
with nvim. The content of R_for_HPC_demo.R
file is shown in the following code block. Next, initialize a Nvim-connected R session with \rf
, and then execute the code by pressing the space bar on your keyboard.
library(tidyverse)
write_tsv(iris, "iris.txt") # Creates sample file
read_tsv("iris.txt") %>% # Import with read_tbv from readr package
as_tibble() %>%
group_by(Species) %>%
summarize_all(mean) %>%
reshape2::melt(id.vars=c("Species"), variable.name = "Samples", value.name="Values") %>%
ggplot(aes(Samples, Values, fill = Species)) +
geom_bar(position="dodge", stat="identity")
[ Scroll down to continue ]
If X11 is enabled in a user session then the above code will generate the following bar plot in a separate graphics window.
![](data:image/png;base64,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)