A computer implemented method of distributing processing in a file analysis system comprising a plurality of computing units (140a-n), wherein the method comprises: receiving, by the file analysis system, files provided for analysis by users; generating, by the file analysis system and from the received files, a plurality of batches, each batch comprising a plurality of files; scanning, by the file analysis system, each of the files in a batch using each of a plurality of antivirus software programs (142a-n) to generate an antivirus output for each of the files, comprising: for each of the plurality of computing units: generating a replica (134a-n) of the batch for the computing unit; downloading the replica of the batch to the computing unit; scanning, by the computing unit, each file in the replica of the batch using an antivirus software program assigned to the computing unit to generate a respective program-specific antivirus output for the antivirus software program for each file of the batch of files; requesting, by the computing unit and while the computing unit is scanning the replica of the batch, a replica of a next batch of files different from the batch in response to determining that the downloading of the replica of the batch has finished, wherein the next batch of files is generated from files in a queue generated by the file analysis system; and generating, by the file analysis system and for each file in the batch, the antivirus output for the file from the program-specific antivirus outputs for the file; and outputting, by the file analysis system, the generated antivirus outputs for presentation to the users. receiving, by the file analysis system, files provided for analysis by users; generating, by the file analysis system and from the received files, a plurality of batches, each batch comprising a plurality of files; scanning, by the file analysis system, each of the files in a batch using each of a plurality of antivirus software programs (142a-n) to generate an antivirus output for each of the files, comprising: for each of the plurality of computing units: generating a replica (134a-n) of the batch for the computing unit; downloading the replica of the batch to the computing unit; scanning, by the computing unit, each file in the replica of the batch using an antivirus software program assigned to the computing unit to generate a respective program-specific antivirus output for the antivirus software program for each file of the batch of files; requesting, by the computing unit and while the computing unit is scanning the replica of the batch, a replica of a next batch of files different from the batch in response to determining that the downloading of the replica of the batch has finished, wherein the next batch of files is generated from files in a queue generated by the file analysis system; and generating, by the file analysis system and for each file in the batch, the antivirus output for the file from the program-specific antivirus outputs for the file; and for each of the plurality of computing units: generating a replica (134a-n) of the batch for the computing unit; downloading the replica of the batch to the computing unit; scanning, by the computing unit, each file in the replica of the batch using an antivirus software program assigned to the computing unit to generate a respective program-specific antivirus output for the antivirus software program for each file of the batch of files; requesting, by the computing unit and while the computing unit is scanning the replica of the batch, a replica of a next batch of files different from the batch in response to determining that the downloading of the replica of the batch has finished, wherein the next batch of files is generated from files in a queue generated by the file analysis system; and generating, by the file analysis system and for each file in the batch, the antivirus output for the file from the program-specific antivirus outputs for the file; and generating a replica (134a-n) of the batch for the computing unit; downloading the replica of the batch to the computing unit; scanning, by the computing unit, each file in the replica of the batch using an antivirus software program assigned to the computing unit to generate a respective program-specific antivirus output for the antivirus software program for each file of the batch of files; requesting, by the computing unit and while the computing unit is scanning the replica of the batch, a replica of a next batch of files different from the batch in response to determining that the downloading of the replica of the batch has finished, wherein the next batch of files is generated from files in a queue generated by the file analysis system; and generating, by the file analysis system and for each file in the batch, the antivirus output for the file from the program-specific antivirus outputs for the file; and outputting, by the file analysis system, the generated antivirus outputs for presentation to the users.