LICENSE: MIT The rankstr (rank string) library provides functions that identify unique strings across an MPI communicator. A key use case is to split a communicator into subcommunicators such that all processes in a resulting subcommunicator consist of those processes that provided an identical input string. rankstr_mpi_comm_split is a function like MPI_Comm_split, but it takes a variable-length string as the color argument insead of an integer value. The rankstr_mpi function does not output a communicator, but instead returns a unique integer for each unique string. For scalability, the implementation uses a distributed, bitonic sort via point-to-point messages over the input communicator to compare string values. The caller must provide two distinct tag values that are safe for the function to use for its point-to-point messages.