Core utilization optimization by dividing computational blocks across neurosynaptic cores is provided. In some embodiments, a neural network description describing a neural network is read. The neural network comprises a plurality of functional units on a plurality of cores. A functional unit is selected from the plurality of functional units. The functional unit is divided into a plurality of subunits. The plurality of subunits are connected to the neural network in place of the functional unit. The plurality of functional units and the plurality of subunits are reallocated between the plurality of cores. One or more unused cores are removed from the plurality of cores. An optimized neural network description is written based on the reallocation.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method comprising: reading a neural network description describing a neural network comprising a plurality of functional units on a plurality of cores; selecting a functional unit of the plurality of functional units; dividing the functional unit into a plurality of subunits; connecting the plurality of subunits to the neural network in place of the functional unit; reallocating the plurality of functional units and the plurality of subunits between the plurality of cores; removing one or more unused core of the plurality of cores; writing an optimized neural network description based on the reallocation. 2. The method of claim 1, wherein the neural network description and the optimized neural network description have substantially the same functionality. 3. The method of claim 1, wherein the functional unit comprises a splitter. 4. The method of claim 1, wherein dividing the functional unit comprises: identifying at least one axon providing input to the functional unit; replicating the at least one axon; connecting the replicated axon to one of the plurality of subunits. 5. The method of claim 1, wherein connecting the plurality of subunits to the neural network comprises: adding a splitter to the neural network; connecting the splitter to each of the plurality of subunits. 6. The method of claim 1, wherein connecting the plurality of subunits to the neural network comprises: connecting an axon of one of the plurality of subunits to a neuron of another of the plurality of subunits. 7. The method of claim 1, wherein the plurality of subunits and the reallocation are determined by application of an optimization model. 8. The method of claim 7, wherein the optimization model solves simultaneously for optimal division and reallocation. 9. A computer program product for optimizing a neurosynaptic network, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising: reading a neural network description describing a neural network comprising a plurality of functional units on a plurality of cores; selecting a functional unit of the plurality of functional units; dividing the functional unit into a plurality of subunits; connecting the plurality of subunits to the neural network in place of the functional unit; reallocating the plurality of functional units and the plurality of subunits between the plurality of cores; removing one or more unused core of the plurality of cores; writing an optimized neural network description based on the reallocation. 10. The computer program product of claim 9, wherein the neural network description and the optimized neural network description have substantially the same functionality. 11. The computer program product of claim 9, wherein the functional unit comprises a splitter. 12. The computer program product of claim 9, wherein dividing the functional unit comprises: identifying at least one axon providing input to the functional unit; replicating the at least one axon; connecting the replicated axon to one of the plurality of subunits. 13. The computer program product of claim 9, wherein connecting the plurality of subunits to the neural network comprises: adding a splitter to the neural network; connecting the splitter to each of the plurality of subunits. 14. The computer program product of claim 9, wherein connecting the plurality of subunits to the neural network comprises: connecting an axon of one of the plurality of subunits to a neuron of another of the plurality of subunits. 15. The computer program product of claim 9, wherein the plurality of subunits and the reallocation are determined by application of an optimization model. 16. The computer program product of claim 15, wherein the optimization model solves simultaneously for optimal division and reallocation.