Page not found

Globus and Data Sharing


Globus and Data Sharing

The goal of this project is to advance the partnership and collaboration with MSI and OIT to help researchers with managing their data in very efficient ways.

Return to this PI's main page.

Group name: 

Genome Engineering Shared Source


Genome Engineering Shared Source

Genome Engineering Shared Source is a core dedicated for Masonic Cancer Center users. The core provides state-of-the-art genome editing services for human cell lines. The core provides standard knock-outs and knock-ins for specific genes and will utilize CRISPR/Cas9-mediated gene editing. These services require sequencing to confirm the deletions and insertions. The use of CRISPR/Cas9 whole-genome screens will also require extensive bioinformatics analyses of the screens. The core's services depend on proper storage and analyses of the sequencing data. MSI resources are being used for storage. In addition, researchers perform bioinformatics analyses of the sequences using genome aligners such as Bowtie and BWA, Perl libraries, SQL database access, and queries available through MSI.

Return to this PI's main page.

Group name: 

Using MPI_Type_struct datatypes to share data


Using MPI_Type_struct to share data


In this assignment, the program below is given to you to illustrate the use of MPI_Type_struct. In particular, the program shows how MPI_Type_struct can be used to communicate type struct in C. The program reads an integer and a double-precision value from standard input (from process 0), and communicate this to all of the other processes with an MPI_Bcast call. All processes exit when a negative integer is read. Note the use of MPI_Aint and MPI_Datatype. Also note the use of MPI_Address to determine the array of offsets (indices). Study this program carefully. Now, modify the program to read two integers (instead of one) and four double precision values (instead of one) and broadcast these to all processes. You may use MPI_Type_extent (instead of MPI_Address) to determine array of offsets.


#include <stdio.h>
#include "mpi.h"

int main( argc, argv )
int argc;
char **argv;
    int          rank;
    struct { int a; double b;} value;
    MPI_Datatype mystruct;
    int          blocklens[2];
    MPI_Aint     indices[2];
    MPI_Datatype old_types[2];

    MPI_Init( &argc, &argv );

    MPI_Comm_rank( MPI_COMM_WORLD, &rank );

    /* One value of each type */
    blocklens[0] = 1;
    blocklens[1] = 1;
    /* The base types */
    old_types[0] = MPI_INT;
    old_types[1] = MPI_DOUBLE;
    /* The locations of each element */
    MPI_Address( &value.a, &indices[0] );
    MPI_Address( &value.b, &indices[1] );
    /* Make relative */
    indices[1] = indices[1] - indices[0];
    indices[0] = 0;
    MPI_Type_struct( 2, blocklens, indices, old_types, &mystruct );
    MPI_Type_commit( &mystruct );

    do {
        if (rank == 0)
            scanf( "%d %lf", &value.a, &value.b );

        MPI_Bcast( &value, 1, mystruct, 0, MPI_COMM_WORLD );

        printf( "Process %d got %d and %lf
", rank, value.a, value.b );
    } while (value.a >= 0);

    /* Clean up the type */
    MPI_Type_free( &mystruct );
    MPI_Finalize( );
    return 0;

What is the difference between the Shared and Public directories?

The Shared directory (/home/ group /shared) is used to share files among group members. All members of a group have access to their group's Shared directory. Any files that multiple users in the same group need access to should be stored here. Users can read and write to the Shared directory of...

How do I transfer data on Second Tier Storage between users?

An approved self-service workflow has been developed by MSI to detail the process in transferring data from one user to another using Second Tier Storage. A good example of a use case for this scenario is when one member of a group is leaving the University and wants to transfer all data they own...

Partek Genomics Suite

Software Description: 

Partek Genomics Suite (Partek GS) is a software suite of statistics and interactive data visualization designed to extract biological signals from noisy data. Partek GS is able to support microarray and next generation sequencing technologies including DGE and gene expression, RNA-seq and alternative splicing, copy number and association, ChIP-chip, ChIP-seq, and microRNA.

Software Support Level: 
Secondary Support
Software Access Level: 
Limited Licenses
Citrix Documentation: 

To run this software under Windows, connect using instruction provided in our Windows systems page.  Once logged in, navigate to

Start-> All Programs -> Partek -> Partek Genomics Suite

For documentation, refer to the Partek GS homepage.

Note for Windows users (Citrix,

As part of its normal function Partek writes some temporary files. In some cases the folder where the files are being written are very small and Partek may fill the folder up leading to error messages when you try to use Partek. To avoid this please create a Partek folder in your "Local Scratch (L:)" disk and set Partek to write temporary files there. 

Instructions for creating Partek temporary file space:

1) Once logged into the Window's enviroment via, open up the "Local Scratch (L:)" disk and create Partek folder.  You can find the L: disk under the folder icon at the bottom of the Windows desktop. Use the New Folder button at the top of the box to create a new folder on the L:  disk. 

2) Start Partek and select Edit -> Preferences. Once the Preference pane open select the File Locations tab at the top.

3) Under the Temporary File heading, clean up the current tempoary folder by selecting Cleanup Now.

4) Change the location of the temporary files by using the browse button and selectin the Partek folder you just created in the L: disk.

5) Select OK to save these changes.

6) Check this location each time you start Partek to make sure it has not revereted back to the old temporary file location.  

The user could also install a standalone version of Partek on its own computer.  For this purpose, please follow the steps:

1) Download Partek Genomic Suite from:

2) Install it.

3) Contact MSI for license information.

Kind Reminder:

Because MSI only hosts a limited number of Partek licenses, please quit Partek when you are done so that other people can use it.

Software Categories: 
Software Interactive/GUI: 
General Linux Documentation: 

To run this software interactively in a Linux environment run the commands:

module load partek

Kind Reminder:

Because MSI only hosts a limited number of Partek licenses, please quit Partek when you are done so that other people can use it.



Sharing Data


 program bcast
      include 'mpif.h'

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

      if (myrank .eq. 0) then
         read(*,*) ivalue
         ivalue = 0

      call MPI_Bcast(*****************************)

      print *, 'Process ', myrank, ' got ', ivalue

      call MPI_Finalize(ierr)

Sharing Data


#include <stdio.h>
#include "mpi.h"

int main( int argc, char **argv )
    int rank, value;
    MPI_Init( &argc, &argv );

    MPI_Comm_rank( MPI_COMM_WORLD, &rank );
        if (rank == 0) 
            scanf( "%d", &value );
            value = 0;

        MPI_Bcast( ************************************* );
        printf( "Process %d got %d
", rank, value );

    MPI_Finalize( );
    return 0;

Sharing Data




Write a program that reads an integer value from the terminal and distributes the value to all of the MPI processes. Each process should print out its rank and the value it received.


You may want to use these MPI routines in your solution:

Complete the arguments of the MPI_Bcast in the following template: 
Processor 0 is braodcasting an integer value