sharing data between master and slave threads in kdb

What is the ideal method to sharing read only data between the master and slave threads? From my understanding there are two options:

  1. Set shared data as global variable in main so that the slave threads can read them.
  2. Pass shared variables to slave threads as parameters.

From my experiments, there is hardly any difference in performance even with big data set. In fact, 1) has slightly worse performance over 2). I know that for 2), kdb will serialize and serialize parameters. Does it do the same for 1)? That would explain the degradation of performance considering the global variable is bigger in size than thread specific parameter. Are there alternative methods to do this?

Secondly, as slave threads cannot modify global variables. I reckon the only way to share results with main thread is returning them back. Please comment if this is not the case.