Multi-threaded FISH

The FISH scripting language is now multi-threaded, resulting in much faster execution of FISH functions. This an important new feature in PFC 7 as FISH is commonly used during model cycling. To take full advantage of multi-threaded FISH, a new LIST data type, SPLITTING syntax, and OPERATORS have been added.

FISH Lists

Lists are one-dimensional arrays of general FISH values. They differ from matrices in that each index can hold any valid FISH type (including another list). They differ from arrays in that they are passed by value, and they can only be of one dimension. You can iterate through all the elements of a list using the loop foreach statement. The access operator -> can be applied to lists, which permits the retrieval or assignment of an element and returns another list.



FISH splitting allows a function, operator, or library call to be executed repeatedly on each element of an aggregate type (a list, an array, a container of objects, etc). Splitting is executed on all available threads. Splitting can be used as an alternative to loop statements to perform actions on many objects in a very clear and concise manner.



FISH operators are a special class of function designed to be executed in a multi-threaded environment.

On a repeated function call made using splitting, if the symbol was declared as an operator these separate executions will be distributed on all available threads (see the program threads command). On a typical modern multi-core computer and a large set of data this can result in a very large increase in speed.

One of the most common and important uses of FISH operators—indeed their primary reason for being—is to use during cycling. Otherwise a single threaded FISH function that checks or changes all objects in a model will easily dominate the run time of the system.


Neuesten Nachrichten
  • Itasca Celebrates 40 Years Itasca is celebrating 40 years of solving geomechanical and hydrogeological challenges through engineering and computer...
  • Introducing Our New IMASS Constitutive Model The Itasca Constitutive Model for Advanced Strain Softening (IMASS) has been developed to represent the...
  • Learning FLAC3D 7.0 New FLAC3D introductory tutorials are now available on our website. See how easy it is...

Kommende Veranstaltungen
6 Aug
Itasca Training Collaborations
Quality courses offered outside Itasca.... Weiterlesen