You forgot to load the required packages on the client nodes by

 sfLibrary(fCalendar)
 sfLibrary(fractalrock)

and you really should not tryCatch without evaluating the errors for yourself.

Best wishes,
Uwe Ligges

On 12.01.2011 09:47, Santosh Srinivas wrote:
Hello,

Just wondering why I am unable to run this in parallel.
A dput of my dataset is attached at the end. Please use to create my data
object.

I want to run this function in parallel (not sure if this is an efficient
implementation):

#Function to calculate the time to maturity for the option
require(fCalendar,quietly=TRUE) #Trying to calculate the trading days
require(fractalrock,quietly=TRUE) #Just to calculate the trading days
myFinCenter="Asia/Singapore"

getTimeToMaturity<- function(x){     
        tryCatch({
                toDt<- as.Date(as.character(x['EXPIRY_DT']), "%Y-%m-%d")
#Expiry Date
                fromDt<- as.Date(as.character(x['TIMESTAMP']), "%Y-%m-%d")
#Trade Timestamp
                NoOfDays<- NROW(getTradingDates(toDt,fromDt))
                return(NoOfDays/252)
        },
        error = function (ex){
                #print (paste("Error in",toDt,fromDt))
                NoOfDays<- 0
                return(NoOfDays/252)
        }
        )
}


Question: The following two lines work but the third and parallel one
doesn't ... why?

1)>  apply(dNiftyOpt,1,getTimeToMaturity) #Works
          1          2          3          4          5          6          7
8          9         10         11         12         13         14
15         16         17         18         19         20
0.02380952 0.01984127 0.07936508 0.02380952 0.01984127 0.01190476 0.02777778
0.02380952 0.01984127 0.01190476 0.02380952 0.01984127 0.02380952 0.02380952
0.01984127 0.02380952 0.01984127 0.02380952 0.02380952 0.02777778


library(snowfall)
2)>  sfInit()
snowfall 1.84 initialized: sequential execution, one CPU.

sfApply(dNiftyOpt,1,getTimeToMaturity) #Works
          1          2          3          4          5          6          7
8          9         10         11         12         13         14
15         16         17         18         19         20
0.02380952 0.01984127 0.07936508 0.02380952 0.01984127 0.01190476 0.02777778
0.02380952 0.01984127 0.01190476 0.02380952 0.01984127 0.02380952 0.02380952
0.01984127 0.02380952 0.01984127 0.02380952 0.02380952 0.02777778

sfStop()


DOESN'T WORK: 3)
sfInit( parallel=TRUE, cpus=4 );
sfApply(dNiftyOpt,1,getTimeToMaturity) #Added the time to maturity.
DOESN'T WORK?
  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
sfStop();



My dataset:
dput(dNiftyOpt)

structure(list(INSTRUMENT = c("OPTIDX", "OPTIDX", "OPTIDX", "OPTIDX",
"OPTIDX", "OPTIDX", "OPTIDX", "OPTIDX", "OPTIDX", "OPTIDX", "OPTIDX",
"OPTIDX", "OPTIDX", "OPTIDX", "OPTIDX", "OPTIDX", "OPTIDX", "OPTIDX",
"OPTIDX", "OPTIDX"), SYMBOL = c("NIFTY", "NIFTY", "NIFTY", "NIFTY",
"NIFTY", "NIFTY", "NIFTY", "NIFTY", "NIFTY", "NIFTY", "NIFTY",
"NIFTY", "NIFTY", "NIFTY", "NIFTY", "NIFTY", "NIFTY", "NIFTY",
"NIFTY", "NIFTY"), EXPIRY_DT = c("2004-01-29", "2004-01-29",
"2004-01-29", "2004-01-29", "2004-01-29", "2004-01-29", "2004-01-29",
"2004-01-29", "2004-01-29", "2004-01-29", "2004-01-29", "2004-01-29",
"2004-01-29", "2004-01-29", "2004-01-29", "2004-01-29", "2004-01-29",
"2004-01-29", "2004-01-29", "2004-01-29"), STRIKE_PR = c(1780,
1780, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1820, 1820,
1820, 1830, 1830, 1830, 1830, 1840, 1840, 1850), OPTION_TYP = c("PE",
"PE", "CE", "CE", "CE", "CE", "PE", "PE", "PE", "PE", "CE", "CE",
"PE", "CE", "CE", "PE", "PE", "CE", "PE", "CE"), SETTLE_PR = c(27.4,
5.7, 152.95, 28.6, 70.45, 111.35, 14.75, 39.2, 8.6, 2.35, 20.4,
54.2, 50.15, 18.35, 47.25, 51.75, 15.5, 14.95, 57.95, 26.3),
     TIMESTAMP = c("2004-01-22", "2004-01-23", "2004-01-02", "2004-01-22",
     "2004-01-23", "2004-01-27", "2004-01-21", "2004-01-22", "2004-01-23",
     "2004-01-27", "2004-01-22", "2004-01-23", "2004-01-22", "2004-01-22",
     "2004-01-23", "2004-01-22", "2004-01-23", "2004-01-22", "2004-01-22",
     "2004-01-21"), Underlying = c(1770.5, 1847.55, 1946.05, 1770.5,
     1847.55, 1904.7, 1824.6, 1770.5, 1847.55, 1904.7, 1770.5,
     1847.55, 1770.5, 1770.5, 1847.55, 1770.5, 1847.55, 1770.5,
     1770.5, 1824.6), UnderlyingVol = c(0.293906144944403, 0.331877179605752,

     0.129552369208600, 0.293906144944403, 0.331877179605752,
     0.348918971622834, 0.276334860399362, 0.293906144944403,
     0.331877179605752, 0.348918971622834, 0.293906144944403,
     0.331877179605752, 0.293906144944403, 0.293906144944403,
     0.331877179605752, 0.293906144944403, 0.331877179605752,
     0.293906144944403, 0.293906144944403, 0.276334860399362)), .Names =
c("INSTRUMENT",
"SYMBOL", "EXPIRY_DT", "STRIKE_PR", "OPTION_TYP", "SETTLE_PR",
"TIMESTAMP", "Underlying", "UnderlyingVol"), row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15", "16", "17", "18", "19", "20"), class = "data.frame")

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to