Local Execution

When eager mode is not enabled, which is the default behavior, Mars tensor will not be executed unless users call execute or session.run methods.

If no session is created explicitly, the execute will create a local session, and mark it as a default session.

Session

Users can create a new session by new_session method, if no argument is provided, a local session will be generated.

>>> from mars.session import new_session

>>> sess = new_session()  # create a session

By calling as_default of a session, the session will be marked as the default session.

>>> sess.as_default()

More than one mars tensors can be passed to session.run, and calculate the results for each tensor.

>>> a = mt.ones((5, 5), chunk_size=3)
>>> b = a + 1
>>> c = a * 4
>>> sess.run(b, c)
(array([[2., 2., 2., 2., 2.],
     [2., 2., 2., 2., 2.],
     [2., 2., 2., 2., 2.],
     [2., 2., 2., 2., 2.],
     [2., 2., 2., 2., 2.]]), array([[4., 4., 4., 4., 4.],
     [4., 4., 4., 4., 4.],
     [4., 4., 4., 4., 4.],
     [4., 4., 4., 4., 4.],
     [4., 4., 4., 4., 4.]]))

Execute a tensor

For a single tensor, execute can be called.

>>> a = mt.random.rand(3, 4)
>>> a.sum().execute()
7.0293719034458455

Session can be specified by the argument session.

>>> a.sum().execute(session=sess)
6.12833989477539