Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
f2f6dcc
Merge pull request #1 from uvarc/staging
bgv2 Mar 11, 2025
2540ef2
Footer enhancements (bigger logo, more responsive design)
bgv2 Mar 22, 2025
f6a7f25
Commit images from QIIME 2 PowerPoint
megantranvu Jun 13, 2025
0c356f3
QIIME 2 notes index
megantranvu Jun 13, 2025
28ac694
QIIME 2 split_outmd.py
megantranvu Jun 13, 2025
057e6ba
QIIME 2 tutorials index
megantranvu Jun 13, 2025
46f8798
Renaming image files, deleting unneeded image files
megantranvu Jun 13, 2025
0b9c4fe
Fix categories and tags
megantranvu Jun 13, 2025
c9d9d0a
fixed date in index
megantranvu Jun 13, 2025
3881f83
intro
megantranvu Jun 13, 2025
21794aa
notes pages
megantranvu Jun 13, 2025
8e1e02d
Dockerfile
megantranvu Jun 13, 2025
027dd2b
move dockerfile
megantranvu Jun 16, 2025
90e6368
HPC Best Practices tutorial page and notes
megantranvu Jun 30, 2025
0e7f87c
fixed spacing error in image tags, adjusted heading sizes, added sort…
megantranvu Jul 7, 2025
9760bd0
editing formatting and grammar
megantranvu Jul 10, 2025
9daab86
resized images
megantranvu Jul 10, 2025
9b36a5e
Merge branch 'uvarc:staging' into hpc-best-practices
megantranvu Jul 10, 2025
dee19f2
created genomics tutorial page and deb author page
megantranvu Jul 10, 2025
47ed56a
Hand edits through
iveymistele Jul 14, 2025
746e13e
Fixing subpage reference and a few typos
iveymistele Jul 14, 2025
2eb12a1
Merge branch 'uvarc:staging' into multigpuConversion
iveymistele Jul 14, 2025
23328c1
History of Genome Assembly notes
megantranvu Jul 15, 2025
8b6569c
Assembly Construction notes
megantranvu Jul 15, 2025
6738dd3
Sequencing Technologies notes
megantranvu Jul 18, 2025
0957341
Sequence File Formats notes
megantranvu Jul 19, 2025
8f32509
Reference Genomes notes
megantranvu Jul 20, 2025
f05138a
Removed roman numerals from table of contents
megantranvu Jul 20, 2025
cbbbdb8
HPC Overview on Loading Modules notes
megantranvu Jul 20, 2025
ac91ddb
Created subpages for demos
megantranvu Jul 22, 2025
677e80d
BUSCO notes
megantranvu Jul 22, 2025
93180dc
RepeatMasker notes
megantranvu Jul 24, 2025
709cc74
Merge branch 'staging' into hpc-best-practices
dianalin2 Aug 11, 2025
4bb1486
Merge pull request #136 from megantranvu/hpc-best-practices
dianalin2 Aug 11, 2025
2c08e3f
Merge pull request #137 from iveymistele/multigpuConversion
dianalin2 Aug 11, 2025
33bc8c6
Merge branch 'uvarc:staging' into qiime2
megantranvu Aug 11, 2025
2e72ac5
Update workshops with gpu-mig rollout
camdenduy Aug 13, 2025
526193d
Merging Seurat initial round of hand editing into Staging
iveymistele Aug 20, 2025
e1217d9
Seurat image resizing and editing, pt1
iveymistele Aug 20, 2025
50b37f7
Final round of image resizing and hand editing for Seurat markdown co…
iveymistele Aug 22, 2025
cd1cf1f
Merge pull request #140 from iveymistele/staging
dianalin2 Aug 23, 2025
aa17d84
intro to hpc changes
camdenduy Sep 10, 2025
cf4e2ee
StringTie notes, SMRT Link notes, Additional Software notes
megantranvu Sep 13, 2025
00d6786
Fixing typos and formatting inconsistencies
megantranvu Sep 14, 2025
098d1d5
Image resizing, fixed table formatting
megantranvu Sep 14, 2025
25708c4
Merge branch 'uvarc:staging' into staging
bgv2 Sep 27, 2025
1e62bb6
added new YouTube videos to hpc-intro pages
bgv2 Sep 28, 2025
0a535ea
Formatting fixes, added More Rearching Computing Resources notes page
megantranvu Sep 28, 2025
e00a1e7
Image resizing
megantranvu Sep 28, 2025
a36a69a
Merge pull request #139 from megantranvu/qiime2
dianalin2 Oct 2, 2025
139a4b0
Merge pull request #141 from bgv2/staging
dianalin2 Oct 2, 2025
1fe3690
Merge pull request #142 from megantranvu/genomics
dianalin2 Oct 2, 2025
803b260
added title attributes to each embedded video (for accessibility)
bgv2 Oct 4, 2025
95d0efe
switched from youtube shortcode to direct embedding
bgv2 Oct 4, 2025
1603592
added alt text for connecting to hpc pages
bgv2 Oct 6, 2025
b02ed5a
Merge branch 'uvarc:staging' into staging
bgv2 Oct 6, 2025
ae359c1
fixed alt text of connecting to hpc articles
bgv2 Oct 12, 2025
49455be
alt text for features of ood
bgv2 Oct 13, 2025
22e4ea1
add community survey link
dianalin2 Oct 13, 2025
7567710
Merge pull request #143 from dianalin2/community-survey
dianalin2 Oct 13, 2025
a3c959b
added alt text to youtube iframes
bgv2 Oct 14, 2025
08276c6
added alt text to interactive apps notes
bgv2 Oct 18, 2025
fc15553
added alt text to working with files notes
bgv2 Oct 18, 2025
67831be
fixed max-width on youtube iframes, with shortcode
bgv2 Oct 19, 2025
d3ec6ac
fixed alt text of yt videos
bgv2 Oct 19, 2025
996ac60
added alt text to globus notes
bgv2 Oct 19, 2025
3c4de15
Merge branch 'uvarc:staging' into staging
bgv2 Oct 23, 2025
c3ee247
removed ineffective alt text attribute from youtube video embeds
bgv2 Oct 27, 2025
67d9ac7
removed redundant style
bgv2 Oct 27, 2025
3e389a4
removed duplicate file in hpc intro
bgv2 Oct 27, 2025
c4e9d57
fix links for globus notes
bgv2 Oct 27, 2025
79576c7
fix links and other accessibility issues in globus and intro to hpc
bgv2 Oct 27, 2025
d02b7f6
add heading to intro to hpc page
bgv2 Oct 27, 2025
17d5060
add alt text to data center image
bgv2 Oct 27, 2025
d5388af
switch to shortcode and add link title for hpc intro index
bgv2 Oct 27, 2025
1d363b9
Merge pull request #144 from bgv2/staging
bgv2 Oct 27, 2025
b4234ff
Many bug fixes and upgrades to parallel examples.
kah3f Nov 14, 2025
383235d
Removed some extra flies
kah3f Nov 14, 2025
101b81e
Bioinformatics intro and Rio markdown conversions, deb author page
iveymistele Nov 18, 2025
0e5eac2
Merge pull request #147 from iveymistele/staging
kah3f Nov 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 6 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.DS_Store
Thumbs.db
public/
.*.swp
resources/
.DS_Store
Thumbs.db
public/
.*.swp
resources/
venv/
3 changes: 2 additions & 1 deletion config/_default/params.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
theme = "rc-theme"

# Enable users to switch between day and night mode?
day_night = false
#day_night = false
day_night = true

# Override the theme's font set (optional).
# Latest font sets (may require updating): https://sourcethemes.com/academic/themes/
Expand Down
27 changes: 27 additions & 0 deletions content/authors/dat/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
# Display name
title: Deb Triant

# Username (this should match the folder name)
authors:
- dat

# Is this the primary user of the site?
superuser: false

# Role/position
role: Research Computing Scientist

# Organizations/Affiliations
organizations:
- name: University of Virginia Research Computing
url: "https://www.rc.virginia.edu"

# Short bio (displayed in user profile at end of posts) - Optionally remove # to use
#bio:

interests:
- Bioinformatics
- HPC
- Research
---
26 changes: 26 additions & 0 deletions content/authors/det/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
# Display name
title: Deb Triant

# Username (this should match the folder name)
authors:
- det

# Is this the primary user of the site?
superuser: false

# Role/position
role: Research Computing Scientist

# Organizations/Affiliations
organizations:
- name: University of Virginia Research Computing
url: "https://www.rc.virginia.edu"


interests:
- Bioinformatics
- HPC
- Research

---
1 change: 1 addition & 0 deletions content/courses/fortran-introduction/advanced_file_io.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ The permitted values for `fmt` are 'FORMATTED' (the default, for a text file) or
ACCESS=acc
```
The access `acc` can be 'SEQUENTIAL' (the default), 'DIRECT', or 'STREAM'. Direct files must be unformatted.

Unless access is 'STREAM', an unformatted file will have a header and footer that is specific to a compiler and platform and may not be portable. This is a relic of magnetic tape drives and allowed them to backspace and skip forward in the tape. For a binary-format file similar to that produced by C/C++ programs and interchangeable with them, use
```fortran
OPEN(UNIT=iunit,FILE=fname,ACCESS=stream,FORM=unformatted)
Expand Down
204 changes: 204 additions & 0 deletions content/courses/parallel-computing-introduction/codes/'
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
#include <iostream>
#include <cstring>
#include <mpi.h>

using namespace std;

int main (int argc, char *argv[]) {

int i, j;
int N;

// Added for MPI
int nr, nrl, nc, ncl;
int rank, nprocs;
MPI_Status status;
int root=0, tag=0;
int up, down;

//Initialize MPI
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD,&nprocs);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);

//Usually we would read in nr and nc; they represent the global grid RxC;
//For this case they are both N.
N=12;
nr=N;
nc=N;

//Use ncl for clarity
ncl=nc;

if (nr%nprocs!=0) {
MPI_Finalize();
cout<<"Not an even division of the arrays.\n";
return 0;
}
else {
nrl=nr/nprocs;
}

//Find my neighbors
if (rank==0) {
up=MPI_PROC_NULL;
}
else {
up=rank-1;
}

if (rank==nprocs-1) {
down=MPI_PROC_NULL;
}
else {
down=rank+1;
}

cout<<"Topology "<<rank<<" "<<up<<" "<<down<<endl;

int nrows=nrl+2; int ncols=ncl+2;
double **w=new double*[nrows];
double *wptr=new double[(nrows)*(ncols)];

for (int i=0;i<nrl+2;++i,wptr+=ncl+2) {
w[i] = wptr;
}

//Initialize

for (int i=0; i<=nrl+1; ++i) {
for (int j=0; j<=ncl+1; ++j) {
w[i][j]=50.;
}
}

for ( int j=0; j<=ncl+1; ++j ) {
w[1][j]=(double)(rank+1)*2.;
w[nrl][j]=(double)(rank+1)*2.5;
}

double topBC=0.;
double bottomBC=200.;
double leftBC=100.;
double rightBC=100.;

for (int i=0;i<=nrl+1;++i){
w[i][0]=leftBC;
w[i][ncl+1]=rightBC;
}

if (rank==0) {
for (int i=0;i<=ncl+1;++i){
w[0][i]=topBC;
}
}
if (rank==nprocs-1) {
for (int i=0;i<+ncl+1;++i){
w[nrl+1][i]=bottomBC;
}
}

MPI_Barrier(MPI_COMM_WORLD);
if ( rank == 0 ) {
cout<<"---W Before for rank 0---"<<endl;
for (int i=0;i<nrl+2;i++) {
for (int j=0;j<ncl+2;j++) {
cout<<w[i][j]<<" ";
}
cout<<endl;
}
MPI_Finalize();
exit(1);

//starting
//This forces the output to show one rank at a time. It's not efficient.
int uwsize=(nrl+2)*(ncl+2);
double *u = new double[uwsize];
memset(u,0.,uwsize);
int position;

MPI_Barrier(MPI_COMM_WORLD);
if ( rank == 0 ) {
cout<<"---W Before for rank 0---"<<endl;
for (int i=0;i<nrl+2;i++) {
for (int j=0;j<ncl+2;j++) {
cout<<w[i][j]<<" ";
}
cout<<endl;
}
for (int n=1;n<nprocs;++n) {

memset(u,0.,uwsize);
MPI_Recv(u,uwsize,MPI_DOUBLE,MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,&status);
cout<<"--Before for rank "<<status.MPI_SOURCE<<endl;
for (int i=0;i<=nrl+1;i++) {
for (int j=0;j<=ncl+1;j++) {
cout<<u[i*(nrl+2)+j]<<" ";
}
cout<<endl;
}
}
}
else {

// Pack the 2D array into the buffer
position=0;
for (int i=0; i<=nrl+1; i++)
for (int j=0;j<=ncl+1; j++)
u[position++]=w[i][j];

MPI_Send(u,uwsize, MPI_DOUBLE, 0, rank, MPI_COMM_WORLD);

}

MPI_Barrier(MPI_COMM_WORLD);


MPI_Sendrecv(&w[1][0],ncl+2, MPI_DOUBLE,up,tag,&w[nrl+1][0],
ncl+2, MPI_DOUBLE,down,tag,MPI_COMM_WORLD,&status);

MPI_Sendrecv(&w[nrl][0],ncl+2,MPI_DOUBLE,down,tag,&w[0][0],
ncl+2,MPI_DOUBLE,up,tag,MPI_COMM_WORLD,&status);

//Print results

MPI_Barrier(MPI_COMM_WORLD);

if ( rank == 0 ) {
cout<<"---After for rank 0---"<<endl;
for (int i=0;i<nrl+2;i++) {
for (int j=0;j<ncl+2;j++) {
cout<<w[i][j]<<" ";
}
cout<<endl;
}
for (int n=1;n<nprocs;++n) {

memset(u,0.,uwsize);
MPI_Recv(u,uwsize,MPI_DOUBLE,MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,&status);
cout<<"--After for rank "<<status.MPI_SOURCE<<endl;
for (int i=0;i<=nrl+1;i++) {
for (int j=0;j<=ncl+1;j++) {
cout<<u[i*(nrl+2)+j]<<" ";
}
cout<<endl;
}
}
}
else {

// Pack the 2D array into the buffer
position=0;
for (int i=0; i<=nrl+1; i++)
for (int j=0;j<=ncl+1; j++)
u[position++]=w[i][j];

MPI_Send(u,uwsize, MPI_DOUBLE, 0, rank, MPI_COMM_WORLD);

}
MPI_Barrier(MPI_COMM_WORLD);

MPI_Finalize();

}

Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,13 @@ int main(int argc, char *argv[]) {
MPI_Comm_size(MPI_COMM_WORLD,&nprocs);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);

char message[]="I have a secret";
//extra spece for null terminator
double message;
if (rank==0) {
message=42.;
}

MPI_Bcast(message,1,MPI_CHAR,0,MPI_COMM_WORLD);
MPI_Bcast(&message,1,MPI_DOUBLE,0,MPI_COMM_WORLD);

cout<<rank<<" "<<message<<endl;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,17 @@ program broadcaster
implicit none

integer :: nprocs, rank, ierr
integer :: sendcount
character(len=15) :: message
double precision :: message

call MPI_Init(ierr)
call MPI_Comm_size(MPI_COMM_WORLD,nprocs,ierr)
call MPI_Comm_rank(MPI_COMM_WORLD,rank,ierr)

message="I have a secret"
if (rank==0) then
message=42.
endif

call MPI_Bcast(message,1,MPI_CHAR,0,MPI_COMM_WORLD,ierr)
call MPI_Bcast(message,1,MPI_DOUBLE_PRECISION,0,MPI_COMM_WORLD,ierr)

print*, rank, message

Expand Down
10 changes: 7 additions & 3 deletions content/courses/parallel-computing-introduction/codes/bcast.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,12 @@
nprocs=comm.Get_size()
rank=comm.Get_rank()

message=np.array(["I have a secret"],dtype='str')
# Make sure the types match
if rank==0:
message=np.array([42.])
else:
message=np.array([0.])

comm.Bcast([message,MPI.CHAR])
comm.Bcast([message,MPI.DOUBLE])

print(rank,message)
print(rank,message[0])
31 changes: 31 additions & 0 deletions content/courses/parallel-computing-introduction/codes/bcast_ch.cxx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#include <iostream>
#include <iomanip>
#include <cstring>
#include "mpi.h"

using namespace std;

int main(int argc, char *argv[]) {

int nprocs,rank;

MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&nprocs);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);

//extra spece for null terminator
char message[16];
strcpy(message," ");
if (rank==0) {
strcpy(message,"I have a secret");
}

MPI_Bcast(message,strlen(message),MPI_CHAR,0,MPI_COMM_WORLD);

cout<<rank<<" "<<message<<endl;

MPI_Finalize();

}


Loading
Loading