Class CommandLineInterface
java.lang.Object
uk.ac.manchester.spinnaker.front_end.CommandLineInterface
public final class CommandLineInterface extends Object
The main command line interface.
- Author:
- Donal Fellows
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CommandLineInterface.DbFileParam
Argument handler for the<dbFile>
parameter.static class
CommandLineInterface.DsFileParam
Argument handler for the<dsFile>
parameter.static class
CommandLineInterface.GatherersParam
Argument handler for the<gatherFile>
parameter.static class
CommandLineInterface.IobufMapParam
Argument handler for the<iobufMapFile>
parameter.static class
CommandLineInterface.MachineParam
Argument handler for the<machineFile>
parameter.static class
CommandLineInterface.PlacementsParam
Argument handler for the<placementFile>
parameter.static class
CommandLineInterface.RunFolderParam
Argument handler for the<runFolder>
parameter. -
Method Summary
-
Method Details
-
main
The main command line interface. Dispatches to other classes based on the first argument, which is a command word.- Parameters:
args
- The command line arguments.
-
runDSEUploadingViaClassicTransfer
public void runDSEUploadingViaClassicTransfer(Machine machine, File dsFile, File runFolder, Boolean filterSystemCores) throws IOException, SpinnmanException, StorageException, ExecutionException, InterruptedException, URISyntaxExceptionRun the data specifications in parallel.- Parameters:
machine
- Description of overall machinedsFile
- Path to the dataspec databaserunFolder
- Directory containing per-run information.filterSystemCores
- Iftrue
, only run the DSE for application vertices. Iffalse
, only run the DSE for system vertices. Ifnull
, run the DSE for all vertices.- Throws:
IOException
- If the communications fail.SpinnmanException
- If a BMP is uncontactable or SpiNNaker rejects a message.StorageException
- If the database is in an illegal state.ExecutionException
- If there was a problem in the parallel queue.InterruptedException
- If the wait for everything to complete is interrupted.URISyntaxException
- If the proxy URI is provided but not valid.
-
runDSEForAppCoresUploadingViaMonitorStreaming
public void runDSEForAppCoresUploadingViaMonitorStreaming(CommandLineInterface.GatherersParam gatherers, CommandLineInterface.MachineParam machine, CommandLineInterface.DsFileParam dsFile, CommandLineInterface.RunFolderParam runFolder, Optional<File> reportFolder) throws IOException, SpinnmanException, StorageException, ExecutionException, InterruptedException, URISyntaxExceptionRun the data specifications in parallel.- Parameters:
gatherers
- List of descriptions of gatherers.machine
- Description of overall machine.dsFile
- Path to the dataspec databaserunFolder
- Directory containing per-run information.reportFolder
- Directory containing reports. IfOptional.empty()
, no report will be written.- Throws:
IOException
- If the communications fail.SpinnmanException
- If a BMP is uncontactable or SpiNNaker rejects a message.StorageException
- If the database is in an illegal state.ExecutionException
- If there was a problem in the parallel queue.InterruptedException
- If the wait for everything to complete is interrupted.URISyntaxException
- If a proxy URI is provided but invalid.
-
retrieveIOBUFs
public void retrieveIOBUFs(CommandLineInterface.MachineParam machine, CommandLineInterface.IobufMapParam iobuf, CommandLineInterface.DbFileParam dbFile, CommandLineInterface.RunFolderParam runFolder) throws IOException, SpinnmanException, InterruptedException, StorageException, URISyntaxExceptionRetrieve IOBUFs in parallel.- Parameters:
machine
- Description of overall machine.iobuf
- Mapping from APLX executable names (full paths) to what cores are running those executables, and which we will download IOBUFs for.dbFile
- The database that receives the output).runFolder
- Directory containing per-run information (i.e., where to log).- Throws:
IOException
- If the communications fail.SpinnmanException
- If a BMP is uncontactable or SpiNNaker rejects a message.InterruptedException
- If interrupted (not expected).URISyntaxException
- If the proxy URI is invalidStorageException
- If there is an error reading the database
-
downloadRecordingChannelsViaClassicTransfer
public void downloadRecordingChannelsViaClassicTransfer(CommandLineInterface.PlacementsParam placements, CommandLineInterface.MachineParam machine, CommandLineInterface.DbFileParam dbFile, CommandLineInterface.RunFolderParam runFolder) throws IOException, SpinnmanException, StorageException, InterruptedException, URISyntaxExceptionDownload data without using data gatherer cores.- Parameters:
placements
- List of descriptions of binary placements.machine
- Description of overall machine.dbFile
- The database that receives the output).runFolder
- Directory containing per-run information (i.e., where to log).- Throws:
IOException
- If the communications failSpinnmanException
- If a BMP is uncontactable or SpiNNaker rejects a messageStorageException
- If the database is in an illegal stateInterruptedException
- If communications are interrupted.URISyntaxException
- If the proxy URI is invalid
-
downloadRecordingChannelsViaMonitorStreaming
public void downloadRecordingChannelsViaMonitorStreaming(CommandLineInterface.GatherersParam gatherers, CommandLineInterface.MachineParam machine, CommandLineInterface.DbFileParam dbFile, CommandLineInterface.RunFolderParam runFolder) throws IOException, SpinnmanException, StorageException, InterruptedException, URISyntaxExceptionDownload data using data gatherer cores.- Parameters:
gatherers
- List of descriptions of gatherers.machine
- Description of overall machine.dbFile
- The database that receives the output).runFolder
- Directory containing per-run information (i.e., where to log).- Throws:
IOException
- If the communications failSpinnmanException
- If a BMP is uncontactable or SpiNNaker rejects a messageStorageException
- If the database is in an illegal stateInterruptedException
- If things are interrupted while waiting for all the downloads to be doneURISyntaxException
- If the URI of the proxy is invalid
-