How to run a "sequence" on multiple sequencers in Parallel?

In reply to ravi_1822:

I did Try something like below, as automatic variable needs to be declatred inside fork…jone_none.
According to the below print msgs it looks like the things are happening in parallel but I got FATAL errors something like below.
Can you help me in resolving this.

  fork 
     begin 
        for (int i = 0; i < p_sequencer.cfg.a_devices; i = i + 1) begin 
       $display(" 11 SAN_@@ a_devices %0d iteration %0d at time %0t",p_sequencer.cfg.a_devices,i,$time);
           ram_seq[i] = wr_rd_random_v_seq::type_id::create($psprintf("SEQ[%0d]",i));

           fork
            begin 
              automatic int j =i;  
             `uvm_do_on(a_seq[j],p_sequencer.a_vseqr[j]);
           end 
           join_none
        end 
     end

11 SAN_@@ a_devices 2 iteration 0 at time 0
11 SAN_@@ a_devices 2 iteration 1 at time 0
UVM_FATAL ramb_wr_rd_v_seq.sv(3) @ 0: ********.a_seq[j] [DCLPSQ] *****.a_seq[j] Error casting p_sequencer, please verify that this sequence/sequence item is intended to execute on this type of sequencer
UVM_FATAL ramb_wr_rd_v_seq.sv(3) @ 0: ********.a_seq[j] [DCLPSQ] *****.a_seq[j] Error casting p_sequencer, please verify that this sequence/sequence item is intended to execute on this type of sequencer

where i have defined “wr_rd_random_v_seq” as below

class wr_rd_random_v_seq extends wr_rd_v_seq ;

uvm_object_utils(wr_rd_random_v_seq) uvm_declare_p_sequencer(a_wr_rd_v_seqr)

wr_rd_random_seq seq_port0;
wr_rd_random_seq seq_port1;

function new (string name = “wr_rd_random_v_seq”); // {
super.new(name);
endfunction : new // }

virtual task body(); // {
uvm_info ("SEQ","Starting Sequence wr_rd_random_v_seq",UVM_MEDIUM); fork // { begin // { uvm_do_on(seq_port0,p_sequencer.port_seqr[0]);
end // }
begin // {
`uvm_do_on(seq_port1,p_sequencer.port_seqr[1]);
end // }
join // }
endtask : body // }

endclass : wr_rd_random_v_seq // }