Code Monkey home page Code Monkey logo

fsi-samples's Introduction

FSI Examples

Repo Index

  1. autoencoder_statarb - Train a TensorFlow-based deep autoencoder on log returns for the Dow Jones 30 securities in a technique is known as Statistical Arbitrage. Profit from temporary mispricings.
  2. backtesting_equity_investment_strats - Compute Sharpe Ratio on entire set of NYSE/NASDAQ stocks and, through bootstrapping, examine a robust number of potential market scenarios for stock selection and PnL measurement against the S&P Index.
  3. credit_default_risk - Use the widely available public U.S. Fannie Mae mortgage dataset to train classifers for predicting loan delinquencies and examine explanations.
  4. gQuant - An external plugin with a set of nodes for quantitative analyst tasks, built on top of the RAPIDS AI project, Numba, and Dask.
  5. greenflow - A graph computation toolkit that helps you to organize the workflows in graph computation.
  6. greenflowlab - A JupyterLab plugin that provides the UI interface for greenflow.
  7. nlp_demo_riva - a simple conversational AI demo that you can ask the question to AI about the provided context text and get the answer back in speech.

fsi-samples's People

Contributors

ajschmidt8 avatar annikabrundyn avatar avolkov1 avatar dependabot[bot] avatar dillon-cullinan avatar doyend avatar esnvidia avatar jbaron avatar kenhester avatar markjosephbennett avatar miguelangel avatar miguelusque avatar mike-wendt avatar msadang avatar phogan-nvidia avatar raydouglass avatar yidong72 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fsi-samples's Issues

Asian Barrier Option pytorch training slow[QST]

I follow the approach in deep_learning_option_2.ipynb, during ignite training, I always got "RANK 0 AVG 1 GPUs, best-mae: 31.9, mae: 31.8, loss: 2511, test one example: 8.65", why mae and loss don't decrease?

[FEA] Ewm function for finite series

Is your feature request related to a problem? Please describe.
The pandas EWM function allows passing of adjust as a parameter. For financial time series, the data is not infinite. Therefore, adjust=False should be used. The discrepancy exists on the first few data points only.

For example, for n = 200 rounded to 2 decimal places:
using gQuant:
200 107.26
201 107.28
202 107.30
203 107.31
204 107.30
...
28123 158.06
28124 158.07
28125 158.07
28126 158.07

using pandas adjust=False:
200 107.07
201 107.09
202 107.11
203 107.12
204 107.11
...
28123 158.06
28124 158.07
28125 158.07
28126 158.07
28127 158.07

Describe the solution you'd like
Allow the qQuant version of EWM to accept the adjust parameter and change the calculation to match the formula used by pandas. I am not sure if the recursive calculation for adjust=False will be amenable for GPU.

Describe alternatives you've considered
Convert the cudf series to pandas, use the pandas EWM function and convert back to cudf.

Additional context
References:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.ewm.html
https://pandas.pydata.org/pandas-docs/stable/user_guide/computation.html#stats-moments-exponentially-weighted

[BUG] Using a UDF via Series.rolling.apply() results in KeyError in numba

Describe the bug
I am writing a simple custom node that calculates rolling price difference in a specified window (3 seconds in this case).
When I run a TaskGraph that contains this node, I get a KeyError: "Failed in nopython mode pipeline (step: nopython mode backend)\n'my_task'" error at line 93 in numba/funcdesc.py.

Steps/Code to reproduce bug
myNode.py:

from gquant.dataframe_flow import Node
import numpy as np
import cudf
from datetime import datetime, timedelta


class MyNode(Node):
    def columns_setup(self):
        self.required = {}
        self.addition = {"datetime": "datetime64[us]",
                         "price": "float64",
                         "change": "float64"}
        self.deletion = None
        self.retention = None

    def process(self, inputs):
        
        def calculate_change(x):
            return (x[-1] - x[0]) / x[0]
        
        t0 = datetime.strptime('2018-10-07 12:00:00', '%Y-%m-%d %H:%M:%S')
        n = 10
        
        df = cudf.DataFrame()
        df['datetime'] = np.array([(t0 + timedelta(seconds=x)) for x in range(n)])
        df['price'] = np.array([(1 + x*1.2) for x in range(n)])
        df = df.set_index('datetime')        
        df['change'] = df['price'].rolling('3s').apply(calculate_change)

        return df

Running the task graph:

from gquant.dataframe_flow import TaskSpecSchema, TaskGraph

my_task = {
    TaskSpecSchema.task_id: 'my_task',
    TaskSpecSchema.node_type: 'MyNode',
    TaskSpecSchema.conf: {},
    TaskSpecSchema.inputs: [],
    TaskSpecSchema.filepath: 'myNode.py'
}

task_graph = TaskGraph([my_task])
outputs = ['my_task']
df, = task_graph.run(outputs=outputs)

gives me this error:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/lowering.py in from_fndesc(cls, fndesc)
     33             # Avoid creating new Env
---> 34             return cls._memo[fndesc.env_name]
     35         except KeyError:

/opt/conda/envs/rapids/lib/python3.6/weakref.py in __getitem__(self, key)
    136             self._commit_removals()
--> 137         o = self.data[key]()
    138         if o is None:

KeyError: '_ZN08NumbaEnv7my_task6MyNode7process12$3clocals$3e21calculate_change$2415E5ArrayIdLi1E1A7mutable7alignedE'

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
<ipython-input-154-16346e4770d1> in <module>
     11 task_graph = TaskGraph([my_task])
     12 outputs = ['my_task']
---> 13 df, = task_graph.run(outputs=outputs)

/opt/conda/envs/rapids/lib/python3.6/site-packages/gquant/dataframe_flow/taskGraph.py in run(self, outputs, replace, profile)
    386 
    387         for i in inputs:
--> 388             i.flow()
    389 
    390         results_dfs_dict = outputs_collector_node.input_df

/opt/conda/envs/rapids/lib/python3.6/site-packages/gquant/dataframe_flow/_node_flow.py in flow(self)
    467 
    468         inputs_data = self.__get_input_df()
--> 469         output_df = self.__call__(inputs_data)
    470 
    471         self_has_ports = self._using_ports()

/opt/conda/envs/rapids/lib/python3.6/site-packages/gquant/dataframe_flow/_node_flow.py in __call__(self, inputs_data)
    703                           for ient in self.inputs]
    704             if not self.delayed_process:
--> 705                 output_df = self.decorate_process()(inputs)
    706             else:
    707                 if self._using_ports():

/home/UdfBug/myNode.py in process(self, inputs)
     26         df['price'] = np.array([(1 + x*1.2) for x in range(n)])
     27         df = df.set_index('datetime')
---> 28         df['change'] = df['price'].rolling('3s').apply(calculate_change)
     29 
     30         return df

/opt/conda/envs/rapids/lib/python3.6/site-packages/cudf/core/window/rolling.py in apply(self, func, *args, **kwargs)
    272                 "Handling UDF with null values is not yet supported"
    273             )
--> 274         return self._apply_agg(func)
    275 
    276     def _normalize(self):

/opt/conda/envs/rapids/lib/python3.6/site-packages/cudf/core/window/rolling.py in _apply_agg(self, agg_name)
    230     def _apply_agg(self, agg_name):
    231         if isinstance(self.obj, cudf.Series):
--> 232             return self._apply_agg_series(self.obj, agg_name)
    233         else:
    234             return self._apply_agg_dataframe(self.obj, agg_name)

/opt/conda/envs/rapids/lib/python3.6/site-packages/cudf/core/window/rolling.py in _apply_agg_series(self, sr, agg_name)
    216                 self.min_periods,
    217                 self.center,
--> 218                 agg_name,
    219             )
    220         return sr._copy_construct(data=result_col)

cudf/_libxx/rolling.pyx in cudf._libxx.rolling.rolling()

cudf/_libxx/aggregation.pyx in cudf._libxx.aggregation.make_aggregation()

cudf/_libxx/aggregation.pyx in cudf._libxx.aggregation._AggregationFactory.from_udf()

/opt/conda/envs/rapids/lib/python3.6/site-packages/cudf/utils/cudautils.py in compile_udf(udf, type_signature)
    289     """
    290     decorated_udf = cuda.jit(udf, device=True)
--> 291     compiled = decorated_udf.compile(type_signature)
    292     ptx_code = decorated_udf.inspect_ptx(type_signature).decode("utf-8")
    293     output_type = numpy_support.as_dtype(compiled.signature.return_type)

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/cuda/compiler.py in compile(self, args)
    109         if args not in self._compileinfos:
    110             cres = compile_cuda(self.py_func, None, args, debug=self.debug,
--> 111                                 inline=self.inline)
    112             first_definition = not self._compileinfos
    113             self._compileinfos[args] = cres

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/compiler_lock.py in _acquire_compile_lock(*args, **kwargs)
     30         def _acquire_compile_lock(*args, **kwargs):
     31             with self:
---> 32                 return func(*args, **kwargs)
     33         return _acquire_compile_lock
     34 

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/cuda/compiler.py in compile_cuda(pyfunc, return_type, args, debug, inline)
     48                                   return_type=return_type,
     49                                   flags=flags,
---> 50                                   locals={})
     51 
     52     library = cres.library

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/compiler.py in compile_extra(typingctx, targetctx, func, args, return_type, flags, locals, library, pipeline_class)
    549     pipeline = pipeline_class(typingctx, targetctx, library,
    550                               args, return_type, flags, locals)
--> 551     return pipeline.compile_extra(func)
    552 
    553 

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/compiler.py in compile_extra(self, func)
    329         self.state.lifted = ()
    330         self.state.lifted_from = None
--> 331         return self._compile_bytecode()
    332 
    333     def compile_ir(self, func_ir, lifted=(), lifted_from=None):

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/compiler.py in _compile_bytecode(self)
    391         """
    392         assert self.state.func_ir is None
--> 393         return self._compile_core()
    394 
    395     def _compile_ir(self):

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/compiler.py in _compile_core(self)
    371                 self.state.status.fail_reason = e
    372                 if is_final_pipeline:
--> 373                     raise e
    374         else:
    375             raise CompilerError("All available pipelines exhausted")

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/compiler.py in _compile_core(self)
    362             res = None
    363             try:
--> 364                 pm.run(self.state)
    365                 if self.state.cr is not None:
    366                     break

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/compiler_machinery.py in run(self, state)
    345                     (self.pipeline_name, pass_desc)
    346                 patched_exception = self._patch_error(msg, e)
--> 347                 raise patched_exception
    348 
    349     def dependency_analysis(self):

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/compiler_machinery.py in run(self, state)
    336                 pass_inst = _pass_registry.get(pss).pass_inst
    337                 if isinstance(pass_inst, CompilerPass):
--> 338                     self._runPass(idx, pass_inst, state)
    339                 else:
    340                     raise BaseException("Legacy pass in use")

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/compiler_lock.py in _acquire_compile_lock(*args, **kwargs)
     30         def _acquire_compile_lock(*args, **kwargs):
     31             with self:
---> 32                 return func(*args, **kwargs)
     33         return _acquire_compile_lock
     34 

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/compiler_machinery.py in _runPass(self, index, pss, internal_state)
    300             mutated |= check(pss.run_initialization, internal_state)
    301         with SimpleTimer() as pass_time:
--> 302             mutated |= check(pss.run_pass, internal_state)
    303         with SimpleTimer() as finalize_time:
    304             mutated |= check(pss.run_finalizer, internal_state)

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/compiler_machinery.py in check(func, compiler_state)
    273 
    274         def check(func, compiler_state):
--> 275             mangled = func(compiler_state)
    276             if mangled not in (True, False):
    277                 msg = ("CompilerPass implementations should return True/False. "

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/typed_passes.py in run_pass(self, state)
    405 
    406         # TODO: Pull this out into the pipeline
--> 407         NativeLowering().run_pass(state)
    408         lowered = state['cr']
    409         signature = typing.signature(state.return_type, *state.args)

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/typed_passes.py in run_pass(self, state)
    346             with targetctx.push_code_library(library):
    347                 lower = lowering.Lower(targetctx, library, fndesc, interp,
--> 348                                        metadata=metadata)
    349                 lower.lower()
    350                 if not flags.no_cpython_wrapper:

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/lowering.py in __init__(self, context, library, fndesc, func_ir, metadata)
     95         # Python execution environment (will be available to the compiled
     96         # function).
---> 97         self.env = Environment.from_fndesc(self.fndesc)
     98 
     99         # Internal states

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/lowering.py in from_fndesc(cls, fndesc)
     34             return cls._memo[fndesc.env_name]
     35         except KeyError:
---> 36             inst = cls(fndesc.lookup_globals())
     37             inst.env_name = fndesc.env_name
     38             cls._memo[fndesc.env_name] = inst

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/funcdesc.py in lookup_globals(self)
     80         dynamically (i.e. exec)
     81         """
---> 82         return self.global_dict or self.lookup_module().__dict__
     83 
     84     def lookup_module(self):

/opt/conda/envs/rapids/lib/python3.6/site-packages/numba/funcdesc.py in lookup_module(self)
     91             return _dynamic_module
     92         else:
---> 93             return sys.modules[self.modname]
     94 
     95     def lookup_function(self):

KeyError: "Failed in nopython mode pipeline (step: nopython mode backend)\n'my_task'"

Running this code outside of gQuant task works just fine:

from gquant.dataframe_flow import Node
import numpy as np
import cudf
from datetime import datetime, timedelta


def calculate_change(x):
    return (x[-1] - x[0]) / x[0]

t0 = datetime.strptime('2018-10-07 12:00:00', '%Y-%m-%d %H:%M:%S')
n = 10

df = cudf.DataFrame()
df['datetime'] = np.array([(t0 + timedelta(seconds=x)) for x in range(n)])
df['price'] = np.array([(1 + x*1.2) for x in range(n)])
df = df.set_index('datetime')        
df['change'] = df['price'].rolling('3s').apply(calculate_change)
print(df)
datetime             price    change
2018-10-07 12:00:00    1.0  0.000000
2018-10-07 12:00:01    2.2  1.200000
2018-10-07 12:00:02    3.4  2.400000
2018-10-07 12:00:03    4.6  1.090909
2018-10-07 12:00:04    5.8  0.705882
2018-10-07 12:00:05    7.0  0.521739
2018-10-07 12:00:06    8.2  0.413793
2018-10-07 12:00:07    9.4  0.342857
2018-10-07 12:00:08   10.6  0.292683
2018-10-07 12:00:09   11.8  0.255319

Expected behavior
Successful rolling UDF execution (see above).

Environment overview (please complete the following information)

  • Environment location: Docker
  • Method of gQuant install: Docker build

Environment details

Click here to see environment details
 **git***
 Not inside a git repository
 
 ***OS Information***
 DISTRIB_ID=Ubuntu
 DISTRIB_RELEASE=18.04
 DISTRIB_CODENAME=bionic
 DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"
 NAME="Ubuntu"
 VERSION="18.04.3 LTS (Bionic Beaver)"
 ID=ubuntu
 ID_LIKE=debian
 PRETTY_NAME="Ubuntu 18.04.3 LTS"
 VERSION_ID="18.04"
 HOME_URL="https://www.ubuntu.com/"
 SUPPORT_URL="https://help.ubuntu.com/"
 BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
 PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
 VERSION_CODENAME=bionic
 UBUNTU_CODENAME=bionic
 Linux 65f3097fdf51 4.15.0-101-generic #102-Ubuntu SMP Mon May 11 10:07:26 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
 
 ***GPU Information***
 Wed Jun  3 19:35:16 2020
 +-----------------------------------------------------------------------------+
 | NVIDIA-SMI 440.82       Driver Version: 440.82       CUDA Version: 10.2     |
 |-------------------------------+----------------------+----------------------+
 | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
 | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
 |===============================+======================+======================|
 |   0  GeForce GTX 166...  Off  | 00000000:01:00.0 Off |                  N/A |
 |  0%   38C    P8    13W / 140W |   2104MiB /  5944MiB |      0%      Default |
 +-------------------------------+----------------------+----------------------+
 
 +-----------------------------------------------------------------------------+
 | Processes:                                                       GPU Memory |
 |  GPU       PID   Type   Process name                             Usage      |
 |=============================================================================|
 +-----------------------------------------------------------------------------+
 
 ***CPU***
 Architecture:        x86_64
 CPU op-mode(s):      32-bit, 64-bit
 Byte Order:          Little Endian
 CPU(s):              10
 On-line CPU(s) list: 0-9
 Thread(s) per core:  1
 Core(s) per socket:  10
 Socket(s):           1
 NUMA node(s):        1
 Vendor ID:           AuthenticAMD
 CPU family:          23
 Model:               113
 Model name:          AMD Ryzen 5 3600 6-Core Processor
 Stepping:            0
 CPU MHz:             3591.870
 BogoMIPS:            7183.74
 Virtualization:      AMD-V
 L1d cache:           64K
 L1i cache:           64K
 L2 cache:            512K
 L3 cache:            16384K
 NUMA node0 CPU(s):   0-9
 Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw perfctr_core ssbd ibpb vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 arat npt nrip_save umip arch_capabilities
 
 ***CMake***
 
 ***g++***
 
 ***nvcc***
 
 ***Python***
 /opt/conda/envs/rapids/bin/python
 Python 3.6.10
 
 ***Environment Variables***
 PATH                            : /opt/conda/envs/rapids/bin:/opt/conda/condabin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/conda/bin:/conda/bin
 LD_LIBRARY_PATH                 : /opt/conda/envs/rapids/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64:/usr/local/lib
 NUMBAPRO_NVVM                   :
 NUMBAPRO_LIBDEVICE              :
 CONDA_PREFIX                    : /opt/conda/envs/rapids
 PYTHON_PATH                     :
 
 ***conda packages***
 /opt/conda/condabin/conda
 # packages in environment at /opt/conda/envs/rapids:
 #
 # Name                    Version                   Build  Channel
 _libgcc_mutex             0.1                 conda_forge    conda-forge
 _openmp_mutex             4.5                      1_llvm    conda-forge
 aiohttp                   3.6.2            py36h516909a_0    conda-forge
 appdirs                   1.4.3                      py_1    conda-forge
 arrow-cpp                 0.15.0           py36h090bef1_2    conda-forge
 async-timeout             3.0.1                   py_1000    conda-forge
 attrs                     19.3.0                     py_0    conda-forge
 backcall                  0.1.0                      py_0    conda-forge
 blas                      2.14                   openblas    conda-forge
 bleach                    3.1.4              pyh9f0ad1d_0    conda-forge
 blosc                     1.18.1               he1b5a44_0    conda-forge
 bokeh                     1.4.0            py36h9f0ad1d_1    conda-forge
 boost                     1.70.0           py36h9de70de_1    conda-forge
 boost-cpp                 1.70.0               h8e57a91_2    conda-forge
 bqplot                    0.12.12            pyh9f0ad1d_0    conda-forge
 brotli                    1.0.7             he1b5a44_1001    conda-forge
 bzip2                     1.0.8                h516909a_2    conda-forge
 c-ares                    1.15.0            h516909a_1001    conda-forge
 ca-certificates           2020.4.5.1           hecc5488_0    conda-forge
 cairo                     1.16.0            hcf35c78_1003    conda-forge
 certifi                   2020.4.5.1       py36h9f0ad1d_0    conda-forge
 cffi                      1.14.0           py36hd463f26_0    conda-forge
 cfitsio                   3.470                hb60a0a2_2    conda-forge
 chardet                   3.0.4           py36h9f0ad1d_1006    conda-forge
 click                     7.1.1              pyh8c360ce_0    conda-forge
 click-plugins             1.1.1                      py_0    conda-forge
 cligj                     0.5.0                      py_0    conda-forge
 cloudpickle               1.3.0                      py_0    conda-forge
 colorcet                  2.0.1                      py_0    conda-forge
 cryptography              2.8              py36h45558ae_2    conda-forge
 cudatoolkit               10.2.89              h6bb024c_0    nvidia
 cudf                      0.13.0a200331         py36_4804    rapidsai-nightly
 cudnn                     7.6.5                cuda10.2_0
 cugraph                   0.13.0a200331          py36_415    rapidsai-nightly
 cuml                      0.13.0a200331   cuda10.2_py36_1351    rapidsai-nightly
 cupy                      7.3.0            py36h4445f8d_0    conda-forge
 curl                      7.68.0               hf8cf82a_0    conda-forge
 cusignal                  0.13.0a200331          py36_107    rapidsai-nightly
 cuspatial                 0.13.0a200331           py36_26    rapidsai-nightly
 cuxfilter                 0.13.0a200331          py36_112    rapidsai-nightly
 cycler                    0.10.0                     py_2    conda-forge
 cython                    0.29.16          py36h831f99a_0    conda-forge
 cytoolz                   0.10.1           py36h516909a_0    conda-forge
 dask                      2.12.0                     py_0    conda-forge
 dask-core                 2.12.0                     py_0    conda-forge
 dask-cuda                 0.13.0b200331           py36_86    rapidsai-nightly
 dask-cudf                 0.13.0a200331         py36_4804    rapidsai-nightly
 dask-glm                  0.2.0                      py_1    conda-forge
 dask-labextension         2.0.1                      py_0    conda-forge
 dask-ml                   1.2.0                      py_0    conda-forge
 dask-xgboost              0.2.0.dev28      cuda10.2py36_0    rapidsai-nightly
 datashader                0.10.0                     py_0    conda-forge
 datashape                 0.5.4                      py_1    conda-forge
 dbus                      1.13.6               he372182_0    conda-forge
 decorator                 4.4.2                      py_0    conda-forge
 defusedxml                0.6.0                      py_0    conda-forge
 distributed               2.12.0                   py36_0    conda-forge
 dlpack                    0.2                  he1b5a44_1    conda-forge
 double-conversion         3.1.5                he1b5a44_2    conda-forge
 entrypoints               0.3             py36h9f0ad1d_1001    conda-forge
 expat                     2.2.9                he1b5a44_2    conda-forge
 fastavro                  0.23.0           py36h8c4c3a4_0    conda-forge
 fastrlock                 0.4             py36h831f99a_1001    conda-forge
 fiona                     1.8.9.post2      py36hdff7cfa_0    conda-forge
 fontconfig                2.13.1            h86ecdb6_1001    conda-forge
 freetype                  2.10.1               he06d7ca_0    conda-forge
 freexl                    1.0.5             h14c3975_1002    conda-forge
 fribidi                   1.0.9                h516909a_0    conda-forge
 fsspec                    0.6.3                      py_0    conda-forge
 gdal                      2.4.4            py36h5f563d9_0    conda-forge
 geopandas                 0.7.0                      py_1    conda-forge
 geos                      3.8.0                he1b5a44_1    conda-forge
 geotiff                   1.5.1                h38872f0_8    conda-forge
 gettext                   0.19.8.1          hc5be6a0_1002    conda-forge
 gflags                    2.2.2             he1b5a44_1002    conda-forge
 giflib                    5.1.7                h516909a_1    conda-forge
 git                       2.26.0          pl526hf241897_0    conda-forge
 glib                      2.58.3          py36hd3ed26a_1003    conda-forge
 glog                      0.4.0                he1b5a44_1    conda-forge
 gquant                    0.4                      pypi_0    pypi
 graphite2                 1.3.13            he1b5a44_1001    conda-forge
 graphviz                  2.42.3               h0511662_0    conda-forge
 grpc-cpp                  1.23.0               h18db393_0    conda-forge
 gst-plugins-base          1.14.5               h0935bb2_2    conda-forge
 gstreamer                 1.14.5               h36ae1b5_2    conda-forge
 harfbuzz                  2.4.0                h9f30f68_3    conda-forge
 hdf4                      4.2.13            hf30be14_1003    conda-forge
 hdf5                      1.10.5          nompi_h3c11f04_1104    conda-forge
 heapdict                  1.0.1                      py_0    conda-forge
 icu                       64.2                 he1b5a44_1    conda-forge
 idna                      2.9                        py_1    conda-forge
 idna_ssl                  1.1.0                 py36_1000    conda-forge
 imageio                   2.8.0                      py_0    conda-forge
 importlib-metadata        1.6.0            py36h9f0ad1d_0    conda-forge
 importlib_metadata        1.6.0                         0    conda-forge
 ipykernel                 5.2.0            py36h95af2a2_1    conda-forge
 ipython                   7.3.0            py36h24bf2e0_0    conda-forge
 ipython_genutils          0.2.0                      py_1    conda-forge
 ipywidgets                7.5.1                      py_0    conda-forge
 jedi                      0.16.0           py36h9f0ad1d_1    conda-forge
 jinja2                    2.11.1                     py_0    conda-forge
 joblib                    0.14.1                     py_0    conda-forge
 jpeg                      9c                h14c3975_1001    conda-forge
 json-c                    0.13.1            h14c3975_1001    conda-forge
 json5                     0.9.0                      py_0    conda-forge
 jsonschema                3.2.0            py36h9f0ad1d_1    conda-forge
 jupyter-server-proxy      1.3.0                      py_0    conda-forge
 jupyter_client            6.1.2                      py_0    conda-forge
 jupyter_core              4.6.3            py36h9f0ad1d_1    conda-forge
 jupyterlab                1.2.7                      py_0    conda-forge
 jupyterlab-nvdashboard    0.2.1                    pypi_0    pypi
 jupyterlab_server         1.1.0                      py_0    conda-forge
 kealib                    1.4.12               hec59c27_0    conda-forge
 kiwisolver                1.1.0            py36hdb11119_1    conda-forge
 krb5                      1.16.4               h2fd8d38_0    conda-forge
 ld_impl_linux-64          2.34                 h53a641e_0    conda-forge
 libblas                   3.8.0               14_openblas    conda-forge
 libcblas                  3.8.0               14_openblas    conda-forge
 libclang                  9.0.1           default_hde54327_0    conda-forge
 libcudf                   0.13.0a200331     cuda10.2_4804    rapidsai-nightly
 libcugraph                0.13.0a200331      cuda10.2_415    rapidsai-nightly
 libcuml                   0.13.0a200331     cuda10.2_1351    rapidsai-nightly
 libcumlprims              0.13.0a200327       cuda10.2_14    rapidsai-nightly
 libcurl                   7.68.0               hda55be3_0    conda-forge
 libcuspatial              0.13.0a200331       cuda10.2_26    rapidsai-nightly
 libdap4                   3.20.4               hd3bb157_0    conda-forge
 libedit                   3.1.20170329      hf8c457e_1001    conda-forge
 libevent                  2.1.10               h72c5cf5_0    conda-forge
 libffi                    3.2.1             he1b5a44_1007    conda-forge
 libgcc-ng                 7.3.0                h24d8f2e_5    conda-forge
 libgdal                   2.4.4                h2b6fda6_0    conda-forge
 libgfortran-ng            7.3.0                hdf63c60_5    conda-forge
 libhwloc                  2.1.0                h3c4fd83_0    conda-forge
 libiconv                  1.15              h516909a_1006    conda-forge
 libkml                    1.3.0             h4fcabce_1010    conda-forge
 liblapack                 3.8.0               14_openblas    conda-forge
 liblapacke                3.8.0               14_openblas    conda-forge
 libllvm8                  8.0.1                hc9558a2_0    conda-forge
 libllvm9                  9.0.1                hc9558a2_0    conda-forge
 libnetcdf                 4.7.3           nompi_h9f9fd6a_101    conda-forge
 libnvstrings              0.13.0a200331     cuda10.2_4804    rapidsai-nightly
 libopenblas               0.3.7                h5ec1e0e_7    conda-forge
 libpng                    1.6.37               hed695b0_1    conda-forge
 libpq                     12.2                 hae5116b_0    conda-forge
 libprotobuf               3.8.0                h8b12597_0    conda-forge
 librmm                    0.13.0a200331      cuda10.2_567    rapidsai-nightly
 libsodium                 1.0.17               h516909a_0    conda-forge
 libspatialindex           1.9.3                he1b5a44_3    conda-forge
 libspatialite             4.3.0a            ha48a99a_1034    conda-forge
 libssh2                   1.8.2                h22169c7_2    conda-forge
 libstdcxx-ng              7.3.0                hdf63c60_5    conda-forge
 libtiff                   4.1.0                hfc65ed5_0    conda-forge
 libtool                   2.4.6             h14c3975_1002    conda-forge
 libuuid                   2.32.1            h14c3975_1000    conda-forge
 libuv                     1.34.0               h516909a_0    conda-forge
 libxcb                    1.13              h14c3975_1002    conda-forge
 libxgboost                1.0.2dev.rapidsai0.13      cuda10.2_6    rapidsai-nightly
 libxkbcommon              0.10.0               he1b5a44_0    conda-forge
 libxml2                   2.9.10               hee79883_0    conda-forge
 llvm-openmp               9.0.1                hc9558a2_2    conda-forge
 llvmlite                  0.31.0           py36hfa65bc7_1    conda-forge
 locket                    0.2.0                      py_2    conda-forge
 lz4-c                     1.8.3             he1b5a44_1001    conda-forge
 lzo                       2.10              h14c3975_1000    conda-forge
 markdown                  3.2.1                      py_0    conda-forge
 markupsafe                1.1.1            py36h8c4c3a4_1    conda-forge
 matplotlib                3.2.1                         0    conda-forge
 matplotlib-base           3.2.1            py36hb8e4980_0    conda-forge
 mistune                   0.8.4           py36h516909a_1000    conda-forge
 mkl                       2019.5                      281    conda-forge
 mock                      4.0.2            py36h9f0ad1d_0    conda-forge
 more-itertools            8.2.0                      py_0    conda-forge
 msgpack-python            1.0.0            py36hdb11119_1    conda-forge
 multidict                 4.7.5            py36h516909a_0    conda-forge
 multipledispatch          0.6.0                      py_0    conda-forge
 munch                     2.5.0                      py_0    conda-forge
 nbconvert                 5.6.1                    py36_0    conda-forge
 nbformat                  5.0.4                      py_0    conda-forge
 nccl                      2.5.7.1              hc6a2c23_0    conda-forge
 ncurses                   6.1               hf484d3e_1002    conda-forge
 networkx                  2.4                        py_1    conda-forge
 nodejs                    13.13.0              hf5d1a2b_0    conda-forge
 nomkl                     3.0                           0
 notebook                  6.0.3                    py36_0    conda-forge
 nspr                      4.25                 he1b5a44_0    conda-forge
 nss                       3.47                 he751ad9_0    conda-forge
 numba                     0.48.0           py36hb3f55d8_0    conda-forge
 numexpr                   2.7.1            py36h830a2c2_1    conda-forge
 numpy                     1.18.1           py36h7314795_1    conda-forge
 nvstrings                 0.13.0a200331         py36_4804    rapidsai-nightly
 olefile                   0.46                       py_0    conda-forge
 openjpeg                  2.3.1                h981e76c_3    conda-forge
 openssl                   1.1.1g               h516909a_0    conda-forge
 packaging                 20.1                       py_0    conda-forge
 pandas                    0.25.3           py36hb3f55d8_0    conda-forge
 pandoc                    2.9.2                         0    conda-forge
 pandocfilters             1.4.2                      py_1    conda-forge
 panel                     0.6.4                         0    conda-forge
 pango                     1.42.4               h7062337_4    conda-forge
 param                     1.9.3                      py_0    conda-forge
 parquet-cpp               1.5.1                         2    conda-forge
 parso                     0.6.2                      py_0    conda-forge
 partd                     1.1.0                      py_0    conda-forge
 patsy                     0.5.1                      py_0    conda-forge
 pcre                      8.44                 he1b5a44_0    conda-forge
 perl                      5.26.2            h516909a_1006    conda-forge
 pexpect                   4.8.0            py36h9f0ad1d_1    conda-forge
 pickleshare               0.7.5           py36h9f0ad1d_1001    conda-forge
 pillow                    7.0.0            py36h8328e55_1    conda-forge
 pip                       20.0.2                     py_2    conda-forge
 pixman                    0.38.0            h516909a_1003    conda-forge
 pluggy                    0.12.0                     py_0    conda-forge
 poppler                   0.67.0               h14e79db_8    conda-forge
 poppler-data              0.4.9                         1    conda-forge
 postgresql                12.2                 hf1211e9_0    conda-forge
 proj                      6.3.0                hc80f0dc_0    conda-forge
 prometheus_client         0.7.1                      py_0    conda-forge
 prompt-toolkit            2.0.10                   pypi_0    pypi
 prompt_toolkit            3.0.5                         0    conda-forge
 psutil                    5.7.0            py36h8c4c3a4_1    conda-forge
 pthread-stubs             0.4               h14c3975_1001    conda-forge
 ptyprocess                0.6.0                   py_1001    conda-forge
 py                        1.8.1                      py_0    conda-forge
 py-xgboost                1.0.2dev.rapidsai0.13  cuda10.2py36_6    rapidsai-nightly
 pyarrow                   0.15.0           py36h8b68381_1    conda-forge
 pycparser                 2.20                       py_0    conda-forge
 pyct                      0.4.6                      py_0    conda-forge
 pyct-core                 0.4.6                      py_0    conda-forge
 pydot                     1.4.1           py36h9f0ad1d_1002    conda-forge
 pyee                      7.0.1                      py_0    conda-forge
 pygments                  2.6.1                      py_0    conda-forge
 pynvml                    8.0.4                      py_0    conda-forge
 pyopenssl                 19.1.0                     py_1    conda-forge
 pyparsing                 2.4.6                      py_0    conda-forge
 pyppeteer                 0.0.25                     py_1    conda-forge
 pyproj                    2.5.0            py36h8ff28aa_0    conda-forge
 pyqt                      5.12.3           py36hcca6a23_1    conda-forge
 pyqt5-sip                 4.19.18                  pypi_0    pypi
 pyqtwebengine             5.12.1                   pypi_0    pypi
 pyrsistent                0.16.0           py36h8c4c3a4_0    conda-forge
 pysocks                   1.7.1            py36h9f0ad1d_1    conda-forge
 pytables                  3.6.1            py36h9f153d1_1    conda-forge
 pytest                    5.4.1            py36h9f0ad1d_0    conda-forge
 python                    3.6.10          h9d8adfe_1009_cpython    conda-forge
 python-dateutil           2.8.1                      py_0    conda-forge
 python-graphviz           0.14               pyh9f0ad1d_0    conda-forge
 python_abi                3.6                     1_cp36m    conda-forge
 pytz                      2019.3                     py_0    conda-forge
 pyviz_comms               0.7.4              pyh8c360ce_0    conda-forge
 pywavelets                1.1.1            py36hc1659b7_0    conda-forge
 pyyaml                    5.3.1            py36h8c4c3a4_0    conda-forge
 pyzmq                     19.0.0           py36h9947dbf_1    conda-forge
 qt                        5.12.5               hd8c4c69_1    conda-forge
 rapids                    0.13.0          cuda10.2_py36_132    rapidsai-nightly
 rapids-notebook-env       0.13.0          cuda10.2_py36_0    rapidsai
 rapids-xgboost            0.13.0          cuda10.2_py36_132    rapidsai-nightly
 re2                       2020.03.03           he1b5a44_0    conda-forge
 readline                  8.0                  hf8c457e_0    conda-forge
 requests                  2.23.0             pyh8c360ce_2    conda-forge
 rmm                       0.13.0a200331          py36_567    rapidsai-nightly
 rtree                     0.9.4            py36he053a7a_1    conda-forge
 scikit-image              0.16.2           py36hb3f55d8_0    conda-forge
 scikit-learn              0.21.3           py36hcdab131_0    conda-forge
 scipy                     1.3.0            py36h921218d_1    conda-forge
 seaborn                   0.10.0                     py_1    conda-forge
 send2trash                1.5.0                      py_0    conda-forge
 setuptools                46.1.3           py36h9f0ad1d_0    conda-forge
 shapely                   1.7.0            py36hc37ca83_1    conda-forge
 simpervisor               0.3                        py_1    conda-forge
 six                       1.14.0                     py_1    conda-forge
 snappy                    1.1.8                he1b5a44_1    conda-forge
 sortedcontainers          2.1.0                      py_0    conda-forge
 sqlite                    3.30.1               hcee41ef_0    conda-forge
 statsmodels               0.11.1           py36h8c4c3a4_1    conda-forge
 tblib                     1.6.0                      py_0    conda-forge
 terminado                 0.8.3            py36h9f0ad1d_1    conda-forge
 testpath                  0.4.4                      py_0    conda-forge
 thrift-cpp                0.12.0            hf3afdfd_1004    conda-forge
 tk                        8.6.10               hed695b0_0    conda-forge
 toolz                     0.10.0                     py_0    conda-forge
 tornado                   6.0.4            py36h8c4c3a4_1    conda-forge
 tqdm                      4.44.1             pyh9f0ad1d_0    conda-forge
 traitlets                 4.3.3            py36h9f0ad1d_1    conda-forge
 traittypes                0.2.1                      py_1    conda-forge
 typing_extensions         3.7.4.1          py36h9f0ad1d_3    conda-forge
 tzcode                    2019a             h516909a_1002    conda-forge
 ucx                       1.7.0+g9d06c3a       cuda10.2_0    rapidsai-nightly
 ucx-py                    0.13.0a200331+g9d06c3a         py36_96    rapidsai-nightly
 umap-learn                0.3.10                   py36_1    conda-forge
 uriparser                 0.9.3                he1b5a44_1    conda-forge
 urllib3                   1.25.7           py36h9f0ad1d_1    conda-forge
 wcwidth                   0.1.9              pyh9f0ad1d_0    conda-forge
 webencodings              0.5.1                      py_1    conda-forge
 websockets                8.1              py36h8c4c3a4_1    conda-forge
 wheel                     0.34.2                     py_1    conda-forge
 widgetsnbextension        3.5.1                    py36_0    conda-forge
 xarray                    0.15.1                     py_0    conda-forge
 xerces-c                  3.2.2             h8412b87_1004    conda-forge
 xgboost                   1.0.2dev.rapidsai0.13  cuda10.2py36_6    rapidsai-nightly
 xorg-kbproto              1.0.7             h14c3975_1002    conda-forge
 xorg-libice               1.0.10               h516909a_0    conda-forge
 xorg-libsm                1.2.3             h84519dc_1000    conda-forge
 xorg-libx11               1.6.9                h516909a_0    conda-forge
 xorg-libxau               1.0.9                h14c3975_0    conda-forge
 xorg-libxdmcp             1.1.3                h516909a_0    conda-forge
 xorg-libxext              1.3.4                h516909a_0    conda-forge
 xorg-libxpm               3.5.13               h516909a_0    conda-forge
 xorg-libxrender           0.9.10            h516909a_1002    conda-forge
 xorg-libxt                1.1.5             h516909a_1003    conda-forge
 xorg-renderproto          0.11.1            h14c3975_1002    conda-forge
 xorg-xextproto            7.3.0             h14c3975_1002    conda-forge
 xorg-xproto               7.0.31            h14c3975_1007    conda-forge
 xz                        5.2.4             h516909a_1002    conda-forge
 yaml                      0.2.2                h516909a_1    conda-forge
 yarl                      1.3.0           py36h516909a_1000    conda-forge
 zeromq                    4.3.2                he1b5a44_2    conda-forge
 zict                      2.0.0                      py_0    conda-forge
 zipp                      3.1.0                      py_0    conda-forge
 zlib                      1.2.11            h516909a_1006    conda-forge
 zstd                      1.4.3                h3b9ef0a_0    conda-forge

[BUG]TaskGraph UI lacking "Add Nodes" menu item to start working

Describe the bug

The actual RMB click menu appears very different than the screenshot animation, especially there is no [Add Nodes] entry so no way to start working at all.

Steps/Code to reproduce bug

Open notebook https://github.com/NVIDIA/fsi-samples/blob/main/gQuant/plugins/gquant_plugin/notebooks/01_tutorial.ipynb

Try follow the steps demonstrated in the screenshot animation, but right mouse button click gives a menu UI like this:

image

Expected behavior

To have the same or equivalent UI to accomplish the steps.

Environment overview (please complete the following information)

  • Environment location: local
  • Method of gQuant install: #153 (comment)

Environment details
Please run and paste the output of the /print_env.sh script here, to gather any other relevant environment details

N/A

Additional context

https://github.com/NVIDIA/fsi-samples/blob/main/gQuant/plugins/gquant_plugin/notebooks/cuIndicator/indicator_demo.ipynb would err out like this:

---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
Input In [10], in <module>
      6 task_list = [task_load_csv_data, task_sort]
      7 task_graph = TaskGraph(task_list)
----> 9 df = task_graph.run(outputs=['sort.out'])[0]
     11 def one_stock(df, stock_id):
     12     return df.query('asset==%s' % stock_id)

File ~/anaconda3/envs/fsi/lib/python3.8/site-packages/greenflow/dataframe_flow/taskGraph.py:753, in TaskGraph.run(self, outputs, replace, profile, formated, build)
    751     return result
    752 else:
--> 753     return self._run(outputs=outputs, replace=replace, profile=profile,
    754                      formated=formated, build=build)

File ~/anaconda3/envs/fsi/lib/python3.8/site-packages/greenflow/dataframe_flow/taskGraph.py:524, in TaskGraph._run(self, outputs, replace, profile, formated, build)
    521 replace = dict() if replace is None else replace
    523 if build:
--> 524     self.build(replace, profile)
    525 else:
    526     if replace:

File ~/anaconda3/envs/fsi/lib/python3.8/site-packages/greenflow/dataframe_flow/taskGraph.py:454, in TaskGraph.build(self, replace, profile)
    452 profile = False if profile is None else profile
    453 # make connection only
--> 454 self._build(replace=replace, profile=profile)
    456 # Columns type checking is done in the :meth:`TaskGraph._run` after the
    457 # outputs are specified and participating tasks are determined.
    458 
    459 # this part is to update each of the node so dynamic inputs can be
    460 # processed
    461 self.breadth_first_update()

File ~/anaconda3/envs/fsi/lib/python3.8/site-packages/greenflow/dataframe_flow/taskGraph.py:405, in TaskGraph._build(self, replace, profile)
    403         node = get_node_obj(output_task, tgraph_mixin=True)
    404     else:
--> 405         node = get_node_obj(task, replace.get(task_id), profile,
    406                             tgraph_mixin=True)
    407     self.__node_dict[task_id] = node
    409 # build the graph

File ~/anaconda3/envs/fsi/lib/python3.8/site-packages/greenflow/dataframe_flow/config_nodes_modules.py:249, in get_node_obj(task, replace, profile, tgraph_mixin, dask_ray_setup)
    246                 continue
    248 if NodeClass is None:
--> 249     raise Exception("Cannot find the Node Class:" +
    250                     node_type)
    252 if module_dir:
    253     append_path(module_dir)

Exception: Cannot find the Node Class:CsvStockLoader

[FEA]Add sliding window Euclidean distance computation

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I wish I could use gQuant to do [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context, code examples, or references to existing implementations about the feature request here.
To compare the shape of the query signal with every position in the stream of time series.

[QST] Docker enterprise edition required ?

I'm on Ubuntu 18.04.3, does this mean I have to subscribe to docker-ee to install the correct version ?

$ sudo apt install -y nvidia-docker2=2.0.3+docker18.09.7-3 nvidia-docker2=2.0.3+docker18.09.7-3
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nvidia-docker2 : Depends: nvidia-container-runtime (= 2.0.0+docker18.09.7-3) but 3.1.4-1 is to be installed
                  Depends: docker-ce (= 5:18.09.7~3-0~ubuntu-bionic) but 5:19.03.5~3-0~ubuntu-bionic is to be installed or
                           docker-ee (= 5:18.09.7~3-0~ubuntu-bionic) but it is not installable
E: Unable to correct problems, you have held broken packages.

Thanks!

[FEA] Rename viz_graph() to viz(), save_taskgraph() to save()

Hi,

I was wondering if we might rename TaskGraph.viz_graph() method to TaskGraph.viz()?

IMO, it is redundant to specify what we are visualizing or saving, and it would also make it more consistent with other methods in that class, such us build() or run.

Please, let me know your thoughts about the above.

Regards,
Miguel

[QST] Rolling OLS calculation

What is your question?
Is the a rolling OLS calculation available in gQuant similar to Pyfinance PandasRollingOLS?

I have a need for the rolling calculation to be performed on a GroupBy object, where a given dataframe is grouped by dates and slope calculated on a rolling basis.

[BUG] cuIndicator.ipyng - Wrong series names

Hi,

When running cuIndicator.ipynb notebook the following message is displayed in cell #5 :

KeyError: 'High'

The error is due to the dataframe series names, which need to be lowercase.

I will fix it as follows:

output = ci.ppsr(df['high'],df['low'],df['close'])

Hope it helps.

Regards,
Miguel

[QST] how long is the container building step would take ?

Congratulations on your great achievement firstly!

however in trying it out, I've been stuck at

Step 8/15 : RUN source activate rapids     && conda install -y -c conda-forge dask-labextension recommonmark numpydoc sphinx_rtd_theme pudb     python-graphviz bqplot=0.11.5 nodejs=11.11.0 jupyterlab=0.35.4 ipywidgets=7.4.2 pytables mkl numexpr
 ---> Running in aca38a804a3f
Collecting package metadata: ...working... done
Solving environment: ...working... 

for several hours.

should it finally make it given I wait longer? (what's the expected time then?)

or what diagnostic steps to be taken?

sorry I'm not familiar with docker for now, but glad to learn it up with some pointers.

Thanks & Regards!

[FEA] build.sh - Move pip dependencies to conda dependencies

At docker/build.sh file, there are some dependencies that are already installed by other dependencies, and others that can be moved from pip to conda.

Building JupyterLab when an extension is installed can be deferred, improving container building time.

[FEA] Conda resolves too slow in the latest versions of the container

Is your feature request related to a problem? Please describe.
When building the container, it takes a long time to resolve conda dependencies.

I have found that issue before. It looks like we have, at any moment, introduced a dependency that makes conda to take a long time to resolve.

Describe the solution you'd like
Make it much faster.

Additional context
I will assign this issue to me because I have worked before in optimising that container.

[QST] Upgrade gquant_plugin's rapids dependency to v21.x?

At time of writing, gquant_plugin assumes rapids=0.19:

https://github.com/NVIDIA/fsi-samples/blob/main/gQuant/plugins/gquant_plugin/README.md#install-the-external-example-plugin

Install RAPIDS:
conda install -y -c rapidsai -c nvidia -c conda-forge -c defaults rapids=0.19

I tried to create a virtual env for rapids=0.19 with conda create -n fsi -c rapidsai -c nvidia -c conda-forge rapids=0.19 cudatoolkit, but conda just can't solve it even after several hours of running.


Blindly tried with CUDA 11.5 and rapids 21.12, jupyter-lab just won't start.

$ conda list | grep rapids
# packages in environment at /workspace/anaconda3/envs/rapids:
cucim                     21.12.00        cuda_11_py37_g6d1f082_0    rapidsai
cudf                      21.12.02        cuda_11_py37_g06540b9b37_0    rapidsai
cudf_kafka                21.12.02        py37_g06540b9b37_0    rapidsai
cugraph                   21.12.00        cuda11_py37_g3a43e9d0_0    rapidsai
cuml                      21.12.00        cuda11_py37_g04c4927f3_0    rapidsai
cusignal                  21.12.00        py37_g2bf865c_0    rapidsai
cuspatial                 21.12.00        py37_gab6748f_0    rapidsai
custreamz                 21.12.02        py37_g06540b9b37_0    rapidsai
cuxfilter                 21.12.00        py37_g2e0fb5a_0    rapidsai
dask-cuda                 21.12.00                 py37_0    rapidsai
dask-cudf                 21.12.02        cuda_11_py37_g06540b9b37_0    rapidsai
faiss-proc                1.0.0                      cuda    rapidsai
libcucim                  21.12.00        cuda11_g6d1f082_0    rapidsai
libcudf                   21.12.02        cuda11_g06540b9b37_0    rapidsai
libcudf_kafka             21.12.02          g06540b9b37_0    rapidsai
libcugraph                21.12.00        cuda11_g3a43e9d0_0    rapidsai
libcuml                   21.12.00        cuda11_g04c4927f3_0    rapidsai
libcuspatial              21.12.00        cuda11_gab6748f_0    rapidsai
librmm                    21.12.00        cuda11_g957ad04_0    rapidsai
libxgboost                1.5.0dev.rapidsai21.12      cuda11.2_0    rapidsai
ptxcompiler               0.2.0            py37h81e21aa_0    rapidsai
py-xgboost                1.5.0dev.rapidsai21.12  cuda11.2py37_0    rapidsai
rapids                    21.12.00        cuda11.5_py37_gc46440c_94    rapidsai
rapids-xgboost            21.12.00        cuda11.5_py37_gc46440c_94    rapidsai
rmm                       21.12.00        cuda11_py37_g957ad04_0_has_cma    rapidsai
ucx                       1.11.2+gef2bbcf      cuda11.2_0    rapidsai
ucx-proc                  1.0.0                       gpu    rapidsai
ucx-py                    0.23.0          py37_gef2bbcf_0    rapidsai
xgboost                   1.5.0dev.rapidsai21.12  cuda11.2py37_0    rapidsai
$ MODULEPATH=$PWD/modules jupyter-lab --allow-root --ip=0.0.0.0 --no-browser --NotebookApp.token=''
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/notebookapp.py:73: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  _("Don't open the notebook in a browser after startup.")
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/notebookapp.py:89: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  _("Allow the notebook to be run from root user.")
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/traits.py:20: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  help=_('Deprecated: Use minified JS file or not, mainly use during dev to avoid JS recompilation'),
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/traits.py:25: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  help=_("Supply extra arguments that will be passed to Jinja environment."))
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/traits.py:29: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  help=_("Extra variables to supply to jinja templates when rendering."),
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/traits.py:62: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  help=_("""Path to search for custom.js, css""")
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/traits.py:76: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  Can be used to override templates from notebook.templates.""")
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/traits.py:85: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  help=_("""extra paths to look for Javascript notebook extensions""")
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/traits.py:130: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  help=_("""The MathJax.js configuration file that is to be used.""")
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/traits.py:143: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  help=(_("Dict of Python modules to load as notebook server extensions."
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/notebookapp.py:124: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  This launches a Tornado based HTML Notebook Server that serves up an HTML5/Javascript Notebook client.""")
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/notebookapp.py:143: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  help=_("""Path to search for custom.js, css""")
/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/notebookapp.py:155: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.
  help=_("""extra paths to look for Javascript notebook extensions""")
NumExpr defaulting to 8 threads.
[I 2022-01-14 21:40:27.832 ServerApp] greenflowlab | extension was successfully linked.
[I 2022-01-14 21:40:27.832 ServerApp] jupyter_server_proxy | extension was successfully linked.
[W 2022-01-14 21:40:27.836 LabApp] 'token' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
[I 2022-01-14 21:40:27.842 ServerApp] jupyterlab | extension was successfully linked.
[W 2022-01-14 21:40:27.857 ServerApp] 'ExtensionManager' object has no attribute '_extensions'
Traceback (most recent call last):
  File "/workspace/anaconda3/envs/rapids/bin/jupyter-lab", line 10, in <module>
    sys.exit(main())
  File "/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/jupyter_server/extension/application.py", line 567, in launch_instance
    serverapp = cls.initialize_server(argv=args)
  File "/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/jupyter_server/extension/application.py", line 540, in initialize_server
    find_extensions=find_extensions,
  File "/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/traitlets/config/application.py", line 88, in inner
    return method(app, *args, **kwargs)
  File "/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/jupyter_server/serverapp.py", line 2315, in initialize
    point = self.extension_manager.extension_points[starter_extension]
  File "/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/jupyter_server/extension/manager.py", line 303, in extension_points
    for value in self.extensions.values()
  File "/workspace/anaconda3/envs/rapids/lib/python3.7/site-packages/nbclassic/nbserver.py", line 80, in extensions
    nb = self._extensions.get("nbclassic")
AttributeError: 'ExtensionManager' object has no attribute '_extensions'

[BUG] download_data.sh seems to do not be in containers anymore

Describe the bug
Most of the notebooks invokes, in the first cell, the download_data.sh script, to download the test dataset if needed.

It seems that download_data.sh is not available anymore in the container.

Steps/Code to reproduce bug
Try to execute the first cell of the tutorial notebook.

Expected behavior
The test dataset should be downloaded.

Environment overview (please complete the following information)

  • Environment location: [Bare-metal, Docker, Cloud(specify cloud provider)]
  • Method of gQuant install: [Docker build, or from source]

Environment details
Please run and paste the output of the /print_env.sh script here, to gather any other relevant environment details

Additional context
Add any other context about the problem here.

[FEA] Add error message (or warning) if replace node does not exist

Hi,

I have just noticed that, if the node detailed in the replace variable does not exist, gQuant does not complain at all.

It has taken me a few minutes to figure out why my workflow was failing.

image

It would be great if we might add an error message or at least a warning if the nodes are not present.

I would vote for raising an error. Warnings might be disabled, and difficult to trace.

Looking for your comments.

Regards,
Miguel

[FEA] Dedicated validation module

We need to have a dedicated validation module to validate the types in the input/output ports. If perhaps there's a different type for inputs/outputs, or custom type, user's should be able to implement their own validation routines pluggable into the Nodes API.

[BUG]gQuant/plugins/gquant_plugin/notebooks/cuIndicator/indicator_demo.ipynb does not work

Describe the bug

The cuIndicator demo notebook has various issues to reproduce its result.

Steps/Code to reproduce bug

First, an identified issue and possible fix:

#154 (comment)

Then

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Input In [16], in <module>
     17     return df.query('datetime<@end_date and datetime>=@beg_date')
     19 indicator_lists = ['Accumulation Distribution', 'ADMI', 'Average True Range', 'Bollinger Bands',
     20                    'Chaikin Oscillator', 'Commodity Channel Index', 'Coppock Curve', 'Donchian Channel',
     21                    'Ease of Movement', 'EWA', 'Force Index', 'Keltner Channel', 'KST Oscillator', 'MA', 'MACD',
     22                    'Mass Index', 'Momentum', 'Money Flow Index', 'On Balance Volume', 'Parabolic SAR',
     23                    'Rate of Change', 'RSI', 'Stochastic Oscillator D', 'Stochastic Oscillator K', 'TRIX',
     24                    'True Strength Index', 'Ultimate Oscillator', 'Vortex Indicator',]
---> 26 task_stocks_list = [task_stock_symbol]
     27 task_stocks_graph = TaskGraph(task_stocks_list)
     28 list_stocks = task_stocks_graph.run(outputs=['stock_symbol.stock_name'])[0].to_pandas().set_index('asset_name').to_dict()['asset']

NameError: name 'task_stock_symbol' is not defined

(I tried to give some value to that variable but further strange errors occurred, so maybe someone familiar with it should better have a look)

Expected behavior

The notebook should be reproducible.

Environment overview (please complete the following information)

  • Environment location: local
  • Method of gQuant install: #154 (comment)

Environment details

N/A

Additional context

#154

Error displaying widget: model not found trying 02_single_stock_trade.ipnyb example

Overview

Thanks for publishing this, it's very interesting and I appreciate the time and effort you're spending on it. I'm trying to get started with 02_single_stock_trade.ipnyb with git tag v1.0.2 (abf9d33) and when I load the notebook in Jupyter Lab, I get the following error in the task_graph.draw() cell.

Any suggestions to get the graph widget working?

Error displaying widget: model not found
[5]: task_graph.run(formated=True)
Traceback (most recent call last):

Traceback (most recent call last):
  File "/home/jeff/miniconda3/envs/jupyter/lib/python3.8/site-packages/gquant/dataframe_flow/taskGraph.py", line 634, in run
    result = self._run(outputs=outputs, replace=replace,
  File "/home/jeff/miniconda3/envs/jupyter/lib/python3.8/site-packages/gquant/dataframe_flow/taskGraph.py", line 476, in _run
    self.build(replace, profile)
  File "/home/jeff/miniconda3/envs/jupyter/lib/python3.8/site-packages/gquant/dataframe_flow/taskGraph.py", line 400, in build
    node = task.get_node_obj(replace.get(task_id), profile,
  File "/home/jeff/miniconda3/envs/jupyter/lib/python3.8/site-packages/gquant/dataframe_flow/task.py", line 184, in get_node_obj
    modules = get_gquant_config_modules()
  File "/home/jeff/miniconda3/envs/jupyter/lib/python3.8/site-packages/gquant/dataframe_flow/task.py", line 45, in get_gquant_config_modules
    modules_list = {imod: config['ModuleFiles'][imod]
  File "/home/jeff/miniconda3/envs/jupyter/lib/python3.8/site-packages/gquant/dataframe_flow/task.py", line 45, in <dictcomp>
    modules_list = {imod: config['ModuleFiles'][imod]
  File "/home/jeff/miniconda3/envs/jupyter/lib/python3.8/configparser.py", line 1255, in __getitem__
    return self._parser.get(self._name, key)
  File "/home/jeff/miniconda3/envs/jupyter/lib/python3.8/configparser.py", line 799, in get
    return self._interpolation.before_get(self, section, option, value,
  File "/home/jeff/miniconda3/envs/jupyter/lib/python3.8/configparser.py", line 395, in before_get
    self._interpolate_some(parser, option, L, value, section, defaults, 1)
  File "/home/jeff/miniconda3/envs/jupyter/lib/python3.8/configparser.py", line 434, in _interpolate_some
    raise InterpolationMissingOptionError(
configparser.InterpolationMissingOptionError: Bad value substitution: option 'my_node' in section 'ModuleFiles' contains an interpolation key 'modulepath' which is not a valid option name. Raw value: '%(MODULEPATH)s/my_node.py'

Environment:

Debian 10.8 amd64

❯ jupyter serverextension list
config dir: /home/jeff/miniconda3/envs/jupyter/etc/jupyter
    jupyter_server_proxy  enabled
    - Validating...
      jupyter_server_proxy  OK
    jupyterlab  enabled
    - Validating...
      jupyterlab 3.0.7 OK
❯ jupyter labextension list
JupyterLab v3.0.7
/home/jeff/miniconda3/envs/jupyter/share/jupyter/labextensions
        bqplot v0.5.22 enabled OK
        gquantlab v1.0.0 enabled OK
        @pyviz/jupyterlab_pyviz v2.0.1 enabled OK (python, pyviz_comms)
        @jupyter-widgets/jupyterlab-manager v3.0.0 enabled OK (python, jupyterlab_widgets)

conda info

conda info

     active environment : jupyter
    active env location : /home/jeff/miniconda3/envs/jupyter
            shell level : 2
       user config file : /home/jeff/.condarc
 populated config files :
          conda version : 4.9.2
    conda-build version : not installed
         python version : 3.8.5.final.0
       virtual packages : __cuda=11.2=0
                          __glibc=2.28=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /home/jeff/miniconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/jeff/miniconda3/pkgs
                          /home/jeff/.conda/pkgs
       envs directories : /home/jeff/miniconda3/envs
                          /home/jeff/.conda/envs
               platform : linux-64
             user-agent : conda/4.9.2 requests/2.24.0 CPython/3.8.5 Linux/4.19.0-14-amd64 debian/10 glibc/2.28
                UID:GID : 3001:3001
             netrc file : None
           offline mode : False

conda list

# packages in environment at /home/jeff/miniconda3/envs/jupyter:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       1_gnu    conda-forge
abseil-cpp                20200923.2           h9c3ff4c_1    conda-forge
aiohttp                   3.7.3            py38h497a2fe_1    conda-forge
aiohttp-cors              0.7.0                    pypi_0    pypi
aioredis                  1.3.1                    pypi_0    pypi
anyio                     2.1.0            py38h578d9bd_0    conda-forge
appdirs                   1.4.4              pyh9f0ad1d_0    conda-forge
argon2-cffi               20.1.0           py38h497a2fe_2    conda-forge
arrow-cpp                 1.0.1           py38hc8b273f_18_cuda    conda-forge
arrow-cpp-proc            3.0.0                      cuda    conda-forge
async-timeout             3.0.1                   py_1000    conda-forge
async_generator           1.10                       py_0    conda-forge
attrs                     20.3.0             pyhd3deb0d_0    conda-forge
aws-c-common              0.4.59               h36c2ea0_1    conda-forge
aws-c-event-stream        0.1.6                had2084c_6    conda-forge
aws-checksums             0.1.10               h4e93380_0    conda-forge
aws-sdk-cpp               1.8.70               h57dc084_1    conda-forge
babel                     2.9.0              pyhd3deb0d_0    conda-forge
backcall                  0.2.0              pyh9f0ad1d_0    conda-forge
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.1                      py_0    conda-forge
bleach                    3.3.0              pyh44b312d_0    conda-forge
blessings                 1.7                      pypi_0    pypi
bokeh                     2.2.3            py38h578d9bd_0    conda-forge
boost                     1.72.0           py38h1e42940_1    conda-forge
boost-cpp                 1.72.0               h8e57a91_0    conda-forge
bqplot                    0.12.22                  pypi_0    pypi
brotli                    1.0.9                h9c3ff4c_4    conda-forge
brotlipy                  0.7.0           py38h497a2fe_1001    conda-forge
bzip2                     1.0.8                h7f98852_4    conda-forge
c-ares                    1.17.1               h36c2ea0_0    conda-forge
ca-certificates           2020.12.5            ha878542_0    conda-forge
cachetools                4.2.1                    pypi_0    pypi
cairo                     1.16.0            hcf35c78_1003    conda-forge
certifi                   2020.12.5        py38h578d9bd_1    conda-forge
cffi                      1.14.5                   pypi_0    pypi
cfitsio                   3.470                hb418390_7    conda-forge
chardet                   3.0.4           py38h924ce5b_1008    conda-forge
click                     7.1.2              pyh9f0ad1d_0    conda-forge
click-plugins             1.1.1                      py_0    conda-forge
cligj                     0.7.1              pyhd8ed1ab_0    conda-forge
cloudpickle               1.6.0                      py_0    conda-forge
colorama                  0.4.4                    pypi_0    pypi
colorcet                  2.0.6              pyhd8ed1ab_0    conda-forge
colorful                  0.5.4                    pypi_0    pypi
configparser              5.0.1                    pypi_0    pypi
cryptography              3.4.4            py38h3e25421_0    conda-forge
cudatoolkit               11.0.221             h6bb024c_0    nvidia
cudf                      0.17.0          cuda_11.0_py38_gf56ef850e6_0    rapidsai
cudf_kafka                0.17.0          py38_gf56ef850e6_0    rapidsai
cudnn                     8.0.0                cuda11.0_0    nvidia
cugraph                   0.17.0          py38_gb58e49e8_0    rapidsai
cuml                      0.17.0          cuda11.0_py38_ga48e0ffbf_0    rapidsai
cupy                      8.0.0            py38hb7c6141_0    rapidsai
curl                      7.71.1               he644dc0_8    conda-forge
cusignal                  0.17.0          py38_ge853242_0    rapidsai
cuspatial                 0.17.0          py38_g897b304_0    rapidsai
custreamz                 0.17.0          py38_gf56ef850e6_0    rapidsai
cuxfilter                 0.17.0          py38_g340129d_0    rapidsai
cyrus-sasl                2.1.27               h3274739_1    conda-forge
cytoolz                   0.11.0           py38h497a2fe_3    conda-forge
dask                      2021.2.0           pyhd8ed1ab_0    conda-forge
dask-core                 2021.2.0           pyhd8ed1ab_0    conda-forge
dask-cuda                 0.17.0                   pypi_0    pypi
dask-cudf                 0.17.0          py38_gf56ef850e6_0    rapidsai
datashader                0.11.1             pyh9f0ad1d_0    conda-forge
datashape                 0.5.4                      py_1    conda-forge
decorator                 4.4.2                      py_0    conda-forge
defusedxml                0.6.0                      py_0    conda-forge
distributed               2021.2.0         py38h578d9bd_0    conda-forge
dlpack                    0.3                  he1b5a44_1    conda-forge
entrypoints               0.3             pyhd8ed1ab_1003    conda-forge
expat                     2.2.10               h9c3ff4c_0    conda-forge
faiss-proc                1.0.0                      cuda    conda-forge
fastavro                  1.3.2            py38h497a2fe_0    conda-forge
fastrlock                 0.5              py38h709712a_2    conda-forge
filelock                  3.0.12                   pypi_0    pypi
fiona                     1.8.13           py38h033e0f6_1    conda-forge
fontconfig                2.13.1            hba837de_1004    conda-forge
freetype                  2.10.4               h0708190_1    conda-forge
freexl                    1.0.5             h516909a_1002    conda-forge
fsspec                    0.8.5              pyhd8ed1ab_0    conda-forge
gdal                      3.0.4           py38h172510d_10    conda-forge
geopandas                 0.8.1                      py_0    conda-forge
geos                      3.8.1                he1b5a44_0    conda-forge
geotiff                   1.6.0                h05acad5_0    conda-forge
gettext                   0.19.8.1          h0b5b191_1005    conda-forge
gflags                    2.2.2             he1b5a44_1004    conda-forge
giflib                    5.2.1                h36c2ea0_2    conda-forge
glib                      2.66.7               h9c3ff4c_0    conda-forge
glib-tools                2.66.7               h9c3ff4c_0    conda-forge
glog                      0.4.0                h49b9bf7_3    conda-forge
google-api-core           1.26.0                   pypi_0    pypi
google-auth               1.26.1                   pypi_0    pypi
googleapis-common-protos  1.52.0                   pypi_0    pypi
gpustat                   0.6.0                    pypi_0    pypi
gquant                    1.0.2                    pypi_0    pypi
gquant-rapids-plugin      0.0.0                    pypi_0    pypi
gquantlab                 1.0.0                    pypi_0    pypi
grpc-cpp                  1.33.2               hf41bbd9_2    conda-forge
grpcio                    1.35.0                   pypi_0    pypi
hdf4                      4.2.13            h10796ff_1004    conda-forge
hdf5                      1.10.6          nompi_h6a2412b_1114    conda-forge
heapdict                  1.0.1                      py_0    conda-forge
hiredis                   1.1.0                    pypi_0    pypi
icu                       64.2                 he1b5a44_1    conda-forge
idna                      2.10               pyh9f0ad1d_0    conda-forge
importlib-metadata        3.4.0            py38h578d9bd_0    conda-forge
importlib_metadata        3.4.0                hd8ed1ab_0    conda-forge
ipykernel                 5.4.3                    pypi_0    pypi
ipython                   7.20.0           py38h81c977d_2    conda-forge
ipython-genutils          0.2.0                    pypi_0    pypi
ipython_genutils          0.2.0                      py_1    conda-forge
ipywidgets                7.6.3              pyhd3deb0d_0    conda-forge
jedi                      0.18.0           py38h578d9bd_2    conda-forge
jinja2                    2.11.3             pyh44b312d_0    conda-forge
joblib                    1.0.1              pyhd8ed1ab_0    conda-forge
jpeg                      9d                   h36c2ea0_0    conda-forge
json-c                    0.13.1            hbfbb72e_1002    conda-forge
json5                     0.9.5              pyh9f0ad1d_0    conda-forge
jsonpath-ng               1.5.2                    pypi_0    pypi
jsonschema                3.2.0                      py_2    conda-forge
jupyter-server-proxy      1.6.0              pyhd8ed1ab_0    conda-forge
jupyter_client            6.1.11             pyhd8ed1ab_1    conda-forge
jupyter_core              4.7.1            py38h578d9bd_0    conda-forge
jupyter_server            1.3.0            py38h578d9bd_0    conda-forge
jupyterlab                3.1.0a2                  pypi_0    pypi
jupyterlab_pygments       0.1.2              pyh9f0ad1d_0    conda-forge
jupyterlab_server         2.2.0              pyhd8ed1ab_0    conda-forge
jupyterlab_widgets        1.0.0              pyhd8ed1ab_1    conda-forge
kealib                    1.4.14               he4dc956_1    conda-forge
krb5                      1.17.2               h926e7f8_0    conda-forge
lcms2                     2.12                 hddcbb42_0    conda-forge
ld_impl_linux-64          2.33.1               h53a641e_7  
libblas                   3.9.0                8_openblas    conda-forge
libcblas                  3.9.0                8_openblas    conda-forge
libcudf                   0.17.0          cuda11.0_gf56ef850e6_0    rapidsai
libcudf_kafka             0.17.0            gf56ef850e6_0    rapidsai
libcugraph                0.17.0          cuda11.0_gb58e49e8_0    rapidsai
libcuml                   0.17.0          cuda11.0_ga48e0ffbf_0    rapidsai
libcumlprims              0.17.0          cuda11.0_g8216947_0    nvidia
libcurl                   7.71.1               hcdd3856_8    conda-forge
libcuspatial              0.17.0          cuda11.0_g897b304_0    rapidsai
libdap4                   3.20.6               hd7c4107_1    conda-forge
libedit                   3.1.20191231         h14c3975_1  
libev                     4.33                 h516909a_1    conda-forge
libevent                  2.1.10               hcdb4288_3    conda-forge
libfaiss                  1.6.3           h328c4c8_3_cuda    conda-forge
libffi                    3.3                  he6710b0_2  
libgcc-ng                 9.3.0               h2828fa1_18    conda-forge
libgcrypt                 1.8.7                h36c2ea0_0    conda-forge
libgdal                   3.0.4               he6a97d6_10    conda-forge
libgfortran-ng            9.3.0               hff62375_18    conda-forge
libgfortran5              9.3.0               hff62375_18    conda-forge
libglib                   2.66.7               h1f3bc88_0    conda-forge
libgomp                   9.3.0               h2828fa1_18    conda-forge
libgpg-error              1.41                 h9c3ff4c_0    conda-forge
libgsasl                  1.8.0                         2    conda-forge
libhwloc                  2.3.0                h5e5b7d1_1    conda-forge
libiconv                  1.16                 h516909a_0    conda-forge
libkml                    1.3.0             hd79254b_1012    conda-forge
liblapack                 3.9.0                8_openblas    conda-forge
libllvm10                 10.0.1               he513fc3_3    conda-forge
libnetcdf                 4.7.4           nompi_h56d31a8_107    conda-forge
libnghttp2                1.43.0               h812cca2_0    conda-forge
libntlm                   1.4               h7f98852_1002    conda-forge
libopenblas               0.3.12          pthreads_h4812303_1    conda-forge
libpng                    1.6.37               h21135ba_2    conda-forge
libpq                     12.3                 h255efa7_3    conda-forge
libprotobuf               3.14.0               h780b84a_0    conda-forge
librdkafka                1.5.3                h54cafa9_0    conda-forge
librmm                    0.17.0          cuda11.0_gc4cc945_0    rapidsai
libsodium                 1.0.18               h36c2ea0_1    conda-forge
libspatialindex           1.9.3                h9c3ff4c_3    conda-forge
libspatialite             4.3.0a            h2482549_1038    conda-forge
libssh2                   1.9.0                hab1572f_5    conda-forge
libstdcxx-ng              9.3.0               h6de172a_18    conda-forge
libthrift                 0.13.0               h5aa387f_6    conda-forge
libtiff                   4.2.0                hdc55705_0    conda-forge
libutf8proc               2.6.1                h7f98852_0    conda-forge
libuuid                   2.32.1            h7f98852_1000    conda-forge
libuv                     1.40.0               hd18ef5c_0    conda-forge
libwebp                   1.2.0                h3452ae3_0    conda-forge
libwebp-base              1.2.0                h7f98852_0    conda-forge
libxcb                    1.13              h7f98852_1003    conda-forge
libxgboost                1.3.0dev.rapidsai0.17      cuda11.0_0    rapidsai
libxml2                   2.9.10               hee79883_0    conda-forge
llvmlite                  0.35.0                   pypi_0    pypi
locket                    0.2.1                    pypi_0    pypi
lz4-c                     1.9.2                he1b5a44_3    conda-forge
markdown                  3.3.3              pyh9f0ad1d_0    conda-forge
markupsafe                1.1.1            py38h497a2fe_3    conda-forge
mistune                   0.8.4           py38h497a2fe_1003    conda-forge
msgpack-python            1.0.2            py38h1fd1430_1    conda-forge
multidict                 5.1.0            py38h497a2fe_1    conda-forge
multipledispatch          0.6.0                      py_0    conda-forge
munch                     2.5.0                      py_0    conda-forge
nbclassic                 0.2.6              pyhd8ed1ab_0    conda-forge
nbclient                  0.5.2              pyhd8ed1ab_0    conda-forge
nbconvert                 6.0.7            py38h578d9bd_3    conda-forge
nbformat                  5.1.2              pyhd8ed1ab_1    conda-forge
nccl                      2.7.8.1            h4962215_100    nvidia
ncurses                   6.2                  he6710b0_1  
nest-asyncio              1.5.1                    pypi_0    pypi
networkx                  2.5                        py_0    conda-forge
nodejs                    12.4.0               he1b5a44_0    conda-forge
notebook                  6.2.0            py38h578d9bd_0    conda-forge
numba                     0.52.0           py38h51da96c_0    conda-forge
numexpr                   2.7.2                    pypi_0    pypi
numpy                     1.20.1           py38h18fd61f_0    conda-forge
nvidia-ml-py3             7.352.0                  pypi_0    pypi
nvtx                      0.2.3            py38h497a2fe_0    conda-forge
olefile                   0.46               pyh9f0ad1d_1    conda-forge
opencensus                0.7.12                   pypi_0    pypi
opencensus-context        0.1.2                    pypi_0    pypi
openjpeg                  2.3.1                hf7af979_3    conda-forge
openssl                   1.1.1i               h7f98852_0    conda-forge
orc                       1.6.6                he361544_0    conda-forge
packaging                 20.9               pyh44b312d_0    conda-forge
pandas                    1.2.2                    pypi_0    pypi
pandoc                    2.11.4               h7f98852_0    conda-forge
pandocfilters             1.4.3                    pypi_0    pypi
panel                     0.9.7                      py_0    conda-forge
param                     1.10.1             pyhd3deb0d_0    conda-forge
parquet-cpp               1.5.1                         2    conda-forge
parso                     0.8.1              pyhd8ed1ab_0    conda-forge
partd                     1.1.0                      py_0    conda-forge
pcre                      8.44                 he1b5a44_0    conda-forge
pexpect                   4.8.0              pyh9f0ad1d_2    conda-forge
pickleshare               0.7.5                   py_1003    conda-forge
pillow                    8.1.0            py38ha0e1e83_2    conda-forge
pip                       20.3.3           py38h06a4308_0  
pixman                    0.38.0            h516909a_1003    conda-forge
ply                       3.11                     pypi_0    pypi
poppler                   0.87.0               h4190859_1    conda-forge
poppler-data              0.4.10                        0    conda-forge
postgresql                12.3                 hc2f5b80_3    conda-forge
proj                      7.0.0                h966b41f_5    conda-forge
prometheus_client         0.9.0              pyhd3deb0d_0    conda-forge
prompt-toolkit            3.0.16             pyha770c72_0    conda-forge
protobuf                  3.14.0           py38h709712a_1    conda-forge
psutil                    5.8.0            py38h497a2fe_1    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
py-spy                    0.3.4                    pypi_0    pypi
py-xgboost                1.3.0dev.rapidsai0.17  cuda11.0py38_0    rapidsai
pyarrow                   1.0.1           py38hf66eee4_18_cuda    conda-forge
pyasn1                    0.4.8                    pypi_0    pypi
pyasn1-modules            0.2.8                    pypi_0    pypi
pycparser                 2.20               pyh9f0ad1d_2    conda-forge
pyct                      0.4.6                      py_0    conda-forge
pyct-core                 0.4.6                      py_0    conda-forge
pydeck                    0.5.0              pyh9f0ad1d_0    conda-forge
pyee                      7.0.4              pyh9f0ad1d_0    conda-forge
pygments                  2.8.0                    pypi_0    pypi
pynvml                    8.0.4                      py_1    conda-forge
pyopenssl                 20.0.1             pyhd8ed1ab_0    conda-forge
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
pyppeteer                 0.2.2                      py_1    conda-forge
pyproj                    2.6.1.post1      py38h7521cb9_0    conda-forge
pyrsistent                0.17.3           py38h497a2fe_2    conda-forge
pysocks                   1.7.1            py38h578d9bd_3    conda-forge
python                    3.8.5                h7579374_1  
python-confluent-kafka    1.5.0            py38h1e0a361_0    conda-forge
python-dateutil           2.8.1                      py_0    conda-forge
python_abi                3.8                      1_cp38    conda-forge
pytz                      2021.1             pyhd8ed1ab_0    conda-forge
pyviz_comms               2.0.1              pyhd3deb0d_0    conda-forge
pyyaml                    5.4.1                    pypi_0    pypi
pyzmq                     22.0.3                   pypi_0    pypi
rapids                    0.17.0          cuda11.0_py38_g180f433_165    rapidsai
rapids-xgboost            0.17.0          cuda11.0_py38_g180f433_165    rapidsai
ray                       1.2.0                    pypi_0    pypi
re2                       2020.11.01           h58526e2_0    conda-forge
readline                  8.1                  h27cfd23_0  
redis                     3.5.3                    pypi_0    pypi
requests                  2.25.1             pyhd3deb0d_0    conda-forge
rmm                       0.17.0          cuda_11.0_py38_gc4cc945_0    rapidsai
rsa                       4.7.1                    pypi_0    pypi
rtree                     0.9.7            py38h02d302b_1    conda-forge
ruamel-yaml               0.16.12                  pypi_0    pypi
ruamel-yaml-clib          0.2.2                    pypi_0    pypi
scikit-learn              0.24.1           py38h658cfdd_0    conda-forge
scipy                     1.6.0            py38hb2138dd_0    conda-forge
send2trash                1.5.0                      py_0    conda-forge
setuptools                49.6.0           py38h578d9bd_3    conda-forge
shapely                   1.7.1            py38ha11d057_1    conda-forge
simpervisor               0.4                pyhd8ed1ab_0    conda-forge
six                       1.15.0             pyh9f0ad1d_0    conda-forge
snappy                    1.1.8                he1b5a44_3    conda-forge
sniffio                   1.2.0            py38h578d9bd_1    conda-forge
sortedcontainers          2.3.0              pyhd8ed1ab_0    conda-forge
spdlog                    1.7.0                hc9558a2_2    conda-forge
sqlite                    3.33.0               h62c20be_0  
streamz                   0.6.2              pyh44b312d_0    conda-forge
tables                    3.6.1                    pypi_0    pypi
tabulate                  0.8.7                    pypi_0    pypi
tbb                       2020.2               h4bd325d_3    conda-forge
tblib                     1.7.0                    pypi_0    pypi
tensorboardx              2.1                      pypi_0    pypi
terminado                 0.9.2            py38h578d9bd_0    conda-forge
testpath                  0.4.4                      py_0    conda-forge
threadpoolctl             2.1.0              pyh5ca1d4c_0    conda-forge
tiledb                    1.7.7                h8efa9f0_3    conda-forge
tk                        8.6.10               hbc83047_0  
toolz                     0.11.1                     py_0    conda-forge
tornado                   6.1              py38h497a2fe_1    conda-forge
tqdm                      4.56.2             pyhd8ed1ab_0    conda-forge
traitlets                 5.0.5                      py_0    conda-forge
traittypes                0.2.1                    pypi_0    pypi
treelite                  0.93             py38hadf7658_3    conda-forge
treelite-runtime          0.93                     pypi_0    pypi
typing-extensions         3.7.4.3                       0    conda-forge
typing_extensions         3.7.4.3                    py_0    conda-forge
tzcode                    2021a                h7f98852_0    conda-forge
ucx                       1.8.1+g6b29558       cuda11.0_0    rapidsai
ucx-proc                  1.0.0                       gpu    rapidsai
ucx-py                    0.17.0          py38_g6b29558_0    rapidsai
urllib3                   1.26.3             pyhd8ed1ab_0    conda-forge
wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
webencodings              0.5.1                    pypi_0    pypi
websockets                8.1              py38h497a2fe_3    conda-forge
wheel                     0.36.2             pyhd3eb1b0_0  
widgetsnbextension        3.5.1            py38h578d9bd_4    conda-forge
xarray                    0.16.2             pyhd8ed1ab_0    conda-forge
xerces-c                  3.2.2             h8412b87_1004    conda-forge
xgboost                   1.3.0dev.rapidsai0.17  cuda11.0py38_0    rapidsai
xorg-kbproto              1.0.7             h7f98852_1002    conda-forge
xorg-libice               1.0.10               h516909a_0    conda-forge
xorg-libsm                1.2.3             h84519dc_1000    conda-forge
xorg-libx11               1.6.12               h516909a_0    conda-forge
xorg-libxau               1.0.9                h7f98852_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xorg-libxext              1.3.4                h516909a_0    conda-forge
xorg-libxrender           0.9.10            h516909a_1002    conda-forge
xorg-renderproto          0.11.1            h14c3975_1002    conda-forge
xorg-xextproto            7.3.0             h7f98852_1002    conda-forge
xorg-xproto               7.0.31            h7f98852_1007    conda-forge
xz                        5.2.5                h7b6447c_0  
yaml                      0.2.5                h516909a_0    conda-forge
yarl                      1.6.3            py38h497a2fe_1    conda-forge
zeromq                    4.3.4                h9c3ff4c_0    conda-forge
zict                      2.0.0                    pypi_0    pypi
zipp                      3.4.0                      py_0    conda-forge
zlib                      1.2.11               h7b6447c_3  
zstd                      1.4.8                hdf46e1d_0    conda-forge

[BUG] cuIndicator.ipynb - Runtime error in cell #3 - Missing file

Hi,

When running cuIndicator.ipynb notebook the following message is displayed in cell #3:

FileNotFoundError: File .cache/node_csvdata.hdf5 does not exist

I would sugget to perform the following change to fix the issue described above:

action = "load" if os.path.isfile('./.cache/node_csvdata.hdf5') else "save"
df = run([node_csv, node_sort], ['node_sort'], {'node_csvdata': {action: True}})[0]

Hope it helps!

Regards,
Miguel

[FEA] Add Jupyterlab extension to display GPU usage

Is your feature request related to a problem? Please describe.
I'd like to add the following Jupyterlab extension to gQuant container:

A JupyterLab extension for displaying dashboards of GPU usage

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context, code examples, or references to existing implementations about the feature request here.

[FEA]We need Plugin file support

We need gQuant to support plugin files, which includes

  1. gQuant python node files
  2. UI file describing how the ports are displayed in the client
  3. UI file describing the port compatibility rules.

gQuant can scan all the plugin files/directories to load them in the server and client. Plugins should be lossely coupled.

[FEA] Rename notebook to notebooks

Is your feature request related to a problem? Please describe.
Rename notebook folder to notebooks.

Describe the solution you'd like
That folder contains more than one notebook. It is also according to other rapids projects notation.

[FEA] Add cuda 10.1.2 support

Is your feature request related to a problem? Please describe.
Add cuda 10.1.2 support

Describe the solution you'd like
Add cuda 10.1.2 support, via docker build.sh

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context, code examples, or references to existing implementations about the feature request here.

[FEA]Generic gQuant Dask Data

In the _node_flow.py file, we have the following logic to handle the non-dask dataframe

output_df[oport] = [iout.compute() for iout in outputs_dly[oport]][0]

We want to generalize it as the normal dask dataframe handles delayed objects.

That's a list of delayed objects. That's just another delayed collection. A dask-cudf or dask dataframe is just a collection of dataframes and itself is a delayed like object since you can call compute on it.
So the generalization would be to return the list of delayed objects that are not necessarily a dask dataframe. We would make a class such as "gQuantDaskData" to use as a port type. Then we can handle such a delayed collection as well. Based on ports type we can return something like:

output_df[oport] = gQuantDaskData(outputs_dly[oport])

This idea would generalize our ability to handle dask distributed processing.

The npartitions is just the length of the list i.e. len(outputs_dly[oport])

Users could inherit from gQuantDaskData and set port types for their particular data. Something like:

class DistributedModel(gQuantDaskData):
    pass  # nothing in particular just indicates this port in/out type can be a distributed model

We check for gQuantDaskData in delayed processing call, enforce for npartitions to match, and add that as a delayed input.
On output find the port type derived from gQuantDaskData and return. Above example:

output_df[oport] = DistributedModel(outputs_dly[oport])

[FEA]Need driver class for the gQuant task graph

Is your feature request related to a problem? Please describe.
The task graph can be run in different contexts. Some of the hyper-parameters used inside the nodes are coming from this context. Currently, gQuant is not context-aware.

Describe the solution you'd like
Build a driver class to define the running environment for the graph. So the context-related information can be queried by the graph.

[BUG] cuIndicator.ipynb - Incorrect path to dataset

Hi,

It seems that the path to the datasets is incorrect at cuIndicator.ipynb notebook.

Currently, it is defined as follows:
"path": "/Project/data/stocks/stock_price_hist.csv.gz"

I think it should be:
"path": "../data/stock_price_hist.csv.gz"

Something similar is happening with the following dataset:
"path": "/Project/data/stocks/security_master.csv.gz"

Hope it helps!

Miguel

[FEA]Migrate to the new input/output port API

Is your feature request related to a problem? Please describe.
Currently, the example Notebooks are not using the new input/output port API, which is not supported for the UI tool.

Describe the solution you'd like
Migrate all the existing gQuant nodes to use the new input/output port API

[FEA]Add the gQuant Web UI

Is your feature request related to a problem? Please describe.
Each task graph node has static typed input/output ports. This can be visually represented by the Web Dom elements. A UI tool can help to guild the user to build the graph and eliminate the errors.

Describe the solution you'd like
Build a simple server to host the REST API so the task graph data can be feeded to the client.
Build the Web UI to translate the data into Dom elements.

[FEA] factor out the translate_column logic to let user define customized column setup

Is your feature request related to a problem? Please describe.
The translate_column is useful but it could be factored out to just be a node helper function and we can add examples of how to use that in columns_setup API. People can then use it or implement their own logic for dynamic columns manipulation. By factoring it out we wouldn't be coupling a mini language (DSL - domain-specific lang.) to the node class to manipulate columns.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.