Upload Queues

From Knot Atlas
Jump to navigationJump to search

This page keeps track of the progress of various robots uploading data to the KnotAtlas.

If you look at the source of this page, you'll see a line that says

{{:ScottDataRobot Queue}}

This line 'transcludes' the page ScottDataRobot Queue, showing its contents here. You can edit it to control the ScottDataRobot. You can create new queues by creating a new page in the same format. There's no need to transclude it here, but perhaps you should, so it's easy to see what's going on. To start uploading data in a queue, see the #Instructions section below.

Broken queue items

  • "HOMFLYPT", "TorusKnots[20]"
  • "HOMFLYPT", "TorusKnots[40]"
  • "Kauffman", "TorusKnots[20]"
  • "Kauffman", "TorusKnots[40]"
    • For some reason the HOMFLYPT and Kauffman polynomials that get uploaded for TorusKnots are broken -- powers of a all replaced with $Failed^-1.

ScottDataRobot Queue

  • "Dowker-Thistlethwaite Code", "AllKnots[13]"
  • "Dowker-Thistlethwaite Code", "AllKnots[14]"
  • "Dowker-Thistlethwaite Code", "AllKnots[15]"
  • "Dowker-Thistlethwaite Code", "AllKnots[16]"
  • "HOMFLYPT", "AllKnots[13]"
  • "HOMFLYPT", "AllKnots[14]"
  • "HOMFLYPT", "AllKnots[15]"
  • "Rational Khovanov Polynomial", "AllKnots[13, NonAlternating]"
  • "Rational Khovanov Polynomial", "AllKnots[14, NonAlternating]"
  • "Rational Khovanov Polynomial", "AllKnots[15, NonAlternating]"
  • "Kauffman", "AllKnots[13]"
  • "Kauffman", "AllKnots[14]"
  • "Alexander", "AllKnots[13]"
  • "Alexander", "AllKnots[14]"
  • "Alexander", "AllKnots[15]"
  • "Signature", "AllKnots[13]"
  • "Determinant", "AllKnots[13]"

QuantumInvariants Queue


Testing Queue


Completed Work

  • "Rational Khovanov Polynomial", "AllKnots[12, NonAlternating]"
  • "Kauffman", "AllKnots[12]"
  • "HOMFLYPT", "AllKnots[12]"
  • "HOMFLYPT", "TorusKnots[17]"
  • "QuantumInvariant/G2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/A4/0,1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A3/1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "Alexander", "AllKnots[12]"
  • "QuantumInvariant/A1/6", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A1/6", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/A3/1,0,1", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A1/2", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/A1/2", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
  • "QuantumInvariant/A1/8", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A3/1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
  • "QuantumInvariant/A3/1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A3/0,1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/B2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/A1/1", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
  • "QuantumInvariant/A1/3", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/A4/0,1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "Signature", "AllKnots[12]"
  • "QuantumInvariant/A2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=5&]"
  • "QuantumInvariant/A1/1", "Select[AllKnots[{3,11}],First[BR[#]]<=5&]"
  • "QuantumInvariant/A3/1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=5&]"
  • "QuantumInvariant/A2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/B2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A2/2,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/D4/0,1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A1/2", "Select[AllKnots[{3,11}],First[BR[#]]<=5&]"
  • "QuantumInvariant/A1/1", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A4/1,0,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "Determinant", "AllKnots[12]"
  • "QuantumInvariant/A1/7", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/B2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
  • "QuantumInvariant/A1/1", "Select[AllKnots[{3,11}],First[BR[#]]<=6&]"
  • "QuantumInvariant/D4/1,0,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
  • "QuantumInvariant/A2/1,1", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/D4/1,0,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/A1/5", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/G2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A1/1", "Select[AllKnots[{3,11}],First[BR[#]]<=7&]"
  • "QuantumInvariant/A3/0,1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/A3/1,0,1", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/A1/1", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/G2/0,1", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A1/5", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/A2/2,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A1/4", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/A1/2", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/B2/0,1", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/G2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
  • "QuantumInvariant/A1/3", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
  • "QuantumInvariant/A1/4", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
  • "QuantumInvariant/A1/4", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A1/3", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
  • "QuantumInvariant/A2/1,1", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
  • "QuantumInvariant/A1/2", "Select[AllKnots[{3,11}],First[BR[#]]<=6&]"

Instructions

To upload data from a queue, you can either use an interactive Mathematica session, or a command line script.

Command line

In the KnotTheory/scripts/ folder, you should find a script called upload_script.sh, and upload_script_nice.sh. These both do the same thing, but upload_script_nice runs in the background, with lower priority than anything else, survives after you logout, and writes its output to nohup.out, rather than the tty. Both scripts require three arguments:

./upload_script.sh username password queue

The queue should be the wiki name for the queue you want to use; something like ScottDataRobot_Queue. You must replace any spaces in the name with underscores. Optionally, you can specify a fourth argument, the path to your math executable, if it's not already on the path. This path must be terminated with a slash.

For example, to start uploading, I use

./upload_script_nice.sh ScottDataRobot password ScottDataRobot_Queue /scratch/bin2/

(If you're not sure how to kill a process you started this way, using ps and kill, you might just try kill `ps -C MathKernel -o pid=`. Strongly not recommended if you have another Mathematica session running! :-)

Mathematica session

Suppose you want to use the "YourDataRobot Queue". You'll need to load KnotTheory`, probably with <<KnotTheory`, and then login, using something like

CreateWikiConnection[
  "http://katlas.math.toronto.edu/w/index.php",
  "YourDataRobot",
  "password"
]

Now issue the command ProcessKnotAtlasUploadQueue["YourDataRobot Queue"]. Options Repeat->numberOfRepeats (defaults to infinity) and Timeout->numberOfSeconds (defaults to 12 hours) can be used to control how many items will be processed, and the maximum amount of time spent on each.

Format of queue pages

The queue pages should contain one line for each task, in the form

*"Invariant Name", "Mathematica expression that evaluates to a list of knots"

The expression evaluating to a list of knots is subjected to a very strict sanity check before it's evaluated, to protect against malicious code. At the moment, all you can use is AllKnots, AllLink, and Take. In particular, you can't write the presumably quite useful Select[AllKnots[14], BraidIndex[#]<=4&].