Skip to content

jwlawson/qvmmi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#qvmmi

MPI code to find minimally mutation infinite quivers

I have tested the code with OpemMPI. The code is provided with a Makefile, to compile run make. This will compile an executable called qvmmi. By default object files are built into a folder named build in the base directory. I have not yet specified a rule in the Makefile to create this folder, so manually create it before building the project.

The project uses the libqv library available at https://github.com/jwlawson/qv

Compilation assumes that mpic++ is on the PATH. If not, then either set the PATH to include the MPI binaries, or change CXX in the Makefile to specify the path to the mpic++ binary.

##Usage

qvmmi [ -s | -f ] [ -d dynkin | -i input | -m matrix ]

-d
    Specify a dynkin diagram to extend to find minimally mutation-infinite
    matrices. Possible options are as follows: 
        A2, A3, A4, A5, A6, A7, A8, A9, D4, D5, D6, D7, D8, D9, E6, E7, E8

-m
    Specify a matrix to extend to find minimally mutation-infinite
    matrices. The matrix should be in a form similar to the following
        { { 0 1 2 } { -1 0 1 } { -2 -1 0 } }
    and should be enclosed within quotes. The spacing in the matrix is
    important for the parser.
    
-i
    Specify a file containing a number of matrices as above. These matrices
    are read from the file and used as input.
    
-f
    Read matrices from the input source. To each add a vertex in every
    possible way and check if the resulting matrix is minimally
    mutation-infinite. The checking used is a fast approximation, which
    cannot prove that a matrix is mutation-finite, but can prove that it
    is mutation-infinite. Matrices which are thought to be mutation-finite
    are output with the prefix "Finite: " to enable them to be filtered out
    of the output easily. Any matrices output without this prefix are
    probably minimally mutation-infinite, but should be checked using
    'qvmmi -s'.
    
    If a single matrix or a dynkin diagram is provided as input, then the
    whole mutation class of the provided matrix is calculated and used as
    the input for the above procedure.
    
-s
    Read matrices from the input source and check whether each is minimally
    mutation-infinite. The checking used is a slow check which will
    definitively prove whether the matrix is mutation-infinite or not.
    Do not use with '-f'. Only input option compatible with '-s' is '-i'.

##Running To run the code use either mpirun or mpiexec to start the program across a number of nodes. This requires that either the mpirun is called using its full path or that the MPI libraries are correctly referenced in LD_LIBRARY_PATH.

Also ensure that libqv is in your library path, or compile statically.

###Example

  • mpirun -np 4 qvmmi -f -d A3 runs the code on 4 cores and outputs all (probably) MMI matrices which are formed by adding a vertex to a matrix in the mutation-class of A3.
  • mpiexec -np 8 qvmmi -s -i file runs the slow checker on all matrices contained in the input file using 8 cores.

##License

Copyright 2014 John Lawson

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

MPI code to find minimally mutation infinite quivers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published