CN104239135A - Hybrid task scheduling method of directed acyclic graph (DGA) based reconfigurable system - Google Patents

Hybrid task scheduling method of directed acyclic graph (DGA) based reconfigurable system Download PDF

Info

Publication number
CN104239135A
CN104239135A CN201410211523.0A CN201410211523A CN104239135A CN 104239135 A CN104239135 A CN 104239135A CN 201410211523 A CN201410211523 A CN 201410211523A CN 104239135 A CN104239135 A CN 104239135A
Authority
CN
China
Prior art keywords
task
queue
tasks
enter
hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410211523.0A
Other languages
Chinese (zh)
Inventor
朱志宇
沈舒
吴将
王彪
王逊
陈迅
李阳
薛文涛
黄巧亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu University of Science and Technology
Original Assignee
Jiangsu University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu University of Science and Technology filed Critical Jiangsu University of Science and Technology
Priority to CN201410211523.0A priority Critical patent/CN104239135A/en
Publication of CN104239135A publication Critical patent/CN104239135A/en
Pending legal-status Critical Current

Links

Abstract

The invention discloses a hybrid task scheduling method of a directed acyclic graph (DGA) based reconfigurable system. The hybrid task scheduling method includes decomposing an application into multiple tasklets described by DGA, and scheduling the tasklets through a scheduler; allowing software tasks to enter a queue Q1, and calculating the software tasks in the queue Q1 according to CPU idling condition and scheduling priority after the software tasks are managed through a task manager; allowing hardware tasks to enter a queue Q2, and further allowing the hardware tasks to enter a queue Q3 if the hardware tasks in the queue Q2 are capable of reutilizing a reconfigurable resource, otherwise, keeping the hardware tasks queuing up in the queue Q2 according to the priority and then configuring and loading through a loader; completing the process of configuring and loading or allowing the tasks in the queue Q3 to enter a queue Q4, allowing the tasks in the queue Q4 to enter a queue Q5 after the tasks are managed via the task manager, then running the tasks according to the priority, sequentially circulating until finishing running of all the tasks, and finally feeding back the total running time. The Q1 refers to the software task queue, the Q2 refers to the preconfigured hardware task queue, the Q3 refers to the configuration reuse queue, the Q4 refers to the configuration completion queue, and the Q5 refers to the running task queue. Configuration frequency is reduced by a configuration reuse strategy, so that the overall scheduling overhead is reduced.

Description

The hybrid tasks scheduling method of the reconfigurable system of directed acyclic graph
Technical field
The present invention relates to Reconfigurable Computation field, specifically a kind of dynamic reconfigurable method for scheduling task.
Background technology
Reconfigurable Computation had both maintained traditional hardware based execution efficiency, maintained again variable architecture, can adapt to the multi-demands in practical application, was current a kind of cutting edge technology.It has broken the boundary line between software and hardware, and its performance, between microprocessor and special IC, is widely used at high-performance computing sector.
The exploitation of research to reconfigurable logic device of Reconfigurable Computing Technology has extremely strong dependence, be that the dynamic reconfigurable device inside of representative is made up of a series of configurable logic block CLBs (Configurable Logic Blocks) with FPGA, this ability of partial reconfigurable that made it possess.It can do corresponding allotment according to application to the resource on reconfigurable logic device, particularly carries out new configuration to the idling-resource of the device that existing task normally performs.In order to make full use of restructural resource, improving the executed in parallel ability of system, needing effectively to manage hardware task and restructural resource.
Existing reconfigurable system can be reduced to and be made up of host CPU and reconfigurable device (FPGA), as Fig. 1, CPU are formed primarily of scheduler, placer and loader, is responsible for the scheduling of reconfigurable task, placement and configuration respectively and loads.Take FPGA as the reconfigurable system of representative exists restructuring procedure and layoutprocedure delay when actual motion, and the data access that repeatedly layoutprocedure is a large amount of, cause the energy consumption of FPGA very large.
A practical application can be divided into software task and hardware task according to certain algorithm.Usually, software task is assigned with and performs on a processor, and hardware task refers to inner comprehensive, width, highly fixing, possess specific function and non-rotatable logic module, could perform on hardware resource after needing configuration, therefore setup time is indispensable.The setup time of reconfigurable hardware task is hidden in the execution time of previous task, it is dispatched.The data that identical logic cell processes is different may be used in the application of many computation-intensives.Therefore, for the task of identical type, by the logical block configured before reusing, can reduce configured number like this, reduce configuration overhead, greatly improve the dispatching efficiency of reconfigurable task.
Summary of the invention
The problem that the present invention is directed to prior art proposes a kind of based on directed acyclic graph (Directed Acyclic Graph, and the reconfigurable task dispatching method of pre-configured priority DAG), application DAG improves pre-configured priority, is specially a kind of hybrid tasks scheduling method of reconfigurable system of directed acyclic graph.
A hybrid tasks scheduling method for the reconfigurable system of directed acyclic graph, described method is as follows: by application decomposition be DAG describe multiple little task through scheduler schedules, software task enters Q 1, Q 1in software task after task manager according to CPU whether idle and dispatching priority calculate; And hardware task enters Q 2, work as Q 2in hardware task can reuse restructural resource, then enter Q 3, otherwise continue to remain on Q 2according to priority queue up, and by loader configuration load; Complete configuration to load or Q 3in task enter Q 4, Q 4in task enter Q through task manager 5run according to priority, circulate successively, until the whole end of run of task, return total working time; Wherein Q 1: software task queue, Q 2: pre-configured hardware task queue, Q 3: reconfiguration reuse queue, Q 4: configure queue, Q 5: operation task queue.
Described task adopts five-tuple { w i, h i, c i, e i, s ibe described, w i, h iexpression task takies the wide and high of restructural resource, c ithe setup time of expression task, e ithe working time of expression task, s irepresent task type, if software task, then make w i, h i, c ibe zero.
Described dispatching priority is as follows:
p i = α * b _ level + t _ level l max + α * ( 1 - w i + h i S )
Wherein α is weight system, w i, h irepresent the wide, high of task respectively, S represents reconfigurable device rectangular area, and namely t_level value from the top layer of DAG figure, calculates from source node to task T ithe time overhead of longest path consuming time before node; B_level then from the bottom of DAG figure, calculates from sink nodes to task T ithe time overhead of the longest path consuming time of node, l maxrefer to longest path length, l max=t_level+b_level.
During described calculating t_level, the node listing of building topology order, to the configuration overhead of each father node of list interior joint and run expense and compare, maximal value is wherein as t_level value.
Compared with prior art, advantage of the present invention is:
The present invention utilizes DAG to describe restructural software and hardware task, clearly shows the related communication between each task and precedence relationship.In reconfigurable system structure, scheduler utilizes pre-configured and reconfiguration reuse, first according to considering that the improvement priority affecting task scheduling factor calculates pre-configuration task, by pre-configured part subsequent tasks hidden parts configuration and time delay, configured number can also be reduced by reconfiguration reuse strategy, and then reduce integrated scheduling expense.
Accompanying drawing explanation
Fig. 1 is reconfigurable system simplified model;
Fig. 2 is t_level calculation flow chart;
Fig. 3 is b_level calculation flow chart;
Fig. 4 is the hybrid tasks scheduling model of reconfigurable structures;
Fig. 5 is method flow diagram.
Embodiment
The method comprises scheduler, loader and layout device, scheduler comprises task replacement policy judge module, provisioning module and reconfiguration reuse module, the task that scheduler describes according to DAG and task type, dispatch task respectively and enter software task queue and pre-configured hardware task queue.For the task in software task queue, will according to CPU whether idle and priority calculate; For the task in pre-configured hardware task queue, first apply reconfiguration reuse strategy and judge, if can reuse, then enter reconfiguration reuse queue; If cannot reuse, then utilize pre-configured priority computing method, consider the influence factor to task scheduling length, task less with area in priority scheduling critical path is conducive to reducing time delay, shortens scheduling time length.According to priority size is waited for pre-configured, after task run terminates, does not regain the restructural resource that it takies immediately, but allow it continue to keep, can directly perform when new task is identical with its type, when new task does not have resource available, then least recently used algorithm is used to replace.Layout device adopts Bazargan placement algorithm to carry out layout.
Q safeguarded by scheduler 1: software task queue, Q 2: pre-configured hardware task queue, Q 3: reconfiguration reuse queue, Q 4: configure queue, Q 5: operation task queue, HTL: hardware task list and FRL: idle rectangle list.
For each new task, with five-tuple { w i, h i, c i, e i, s ibe described, w i, h iexpression task takies the wide and high of restructural resource, c ithe setup time of expression task, e ithe working time of expression task, s irepresent task type, if software task, then make w i, h i, c ibe zero.
1, reconfigurable task model
With directed acyclic graph (Directed Acyclic Graph, DAG), software and hardware task is described: G=(T, E), T represent set of tasks all in application and | T|=n, directed edge collection E=T × T and | E|=m, E (T i, T j) represent T iand T jbetween there is data dependence relation.Without loss of generality, regulation DAG of the present invention only comprises unique source node and convergent point.DAG clearly can show communication between each task and precedence relationship, and each node on behalf software/hardware task, directed edge represents the precedence relationship between task, and the weight on limit represents communication overhead.
If T ioperation result can to T joperation have an impact, namely at T iafter end of run, T jjust can run, claim T ibe called task T jpredecessor task, T jbe called task T isubsequent tasks.Namely only have predecessor task to be finished, subsequent tasks just can perform.If total task-set is T, T=T soft∪ T hard, T softthe set of all software tasks, T hardit is the set of all hardware task.For any T i∈ T, can use five-tuple { w i, h i, c i, e i, s i(1≤i≤n) be described, w i, h iexpression task takies the wide and high of restructural resource, c ithe setup time of expression task, ei represents the working time of task, and si represents task type, if T i∈ T soft, then w is made i, h i, c ibe zero.
2, pre-configured strategy
Reconfigurable task configuration is downloaded by single passage to implement, and downloads and carry out in a serial fashion.Adopt the pre-configured strategy hiding setup time, namely while previous task run, a rear task is configured, and then the overall operation time can be shortened.The setup time of certain each task is hidden in the working time of previous task all completely, just a kind of ideal situation.On the basis adopting pre-configured strategy, rational option and installment order can reduce time loss substantially.Critical path and task size are the factors affecting task scheduling length, and task less with area in priority scheduling critical path is conducive to reducing time delay, shortens scheduling time length.
3, dispatching priority strategy
According to pre-configured strategy of the present invention, the task in priority scheduling critical path and the less task of area, can shorten the integrated scheduling time.Therefore the calculating of the present invention to dispatching priority improves, and increasing the priority of task and the less task of area in critical path, is below concrete computing formula:
p i = α * b _ level + t _ level l max + α * ( 1 - w i + h i S )
Wherein α is weight system, gets 0.5, w i, h irepresent the wide, high of task respectively, S represents reconfigurable device rectangular area, and the front and rear part of priority expression formula have expressed node path and size respectively on the impact of task scheduling.
Namely t_level value from the top layer of DAG figure, calculates from source node to task T ithe time overhead of longest path consuming time before node; B_level then from the bottom of DAG figure, calculates from sink nodes to task T ithe time overhead of the longest path consuming time of node.L maxrefer to longest path length, l max=t_level+b_level.
The calculating of t_level and b_level relates to the weights of task image directed edge, the communication overhead namely between task.When calculating t_level, need the node listing of building topology order, to the configuration overhead of each father node of list interior joint and run expense and compare, maximal value is wherein as t_level value; When calculating b_level, need to set up the node listing of opposite topology order, to setup time of each child node of list interior joint and working time and compare calculating.Fig. 2, Fig. 3 sets forth applicable t_level and b_level calculation flow chart of the present invention.
4, reconfiguration reuse strategy
The logical block configured before can utilizing for the task of identical type is reused, and can save setup time like this, improves the dispatching efficiency of reconfigurable task greatly.
The strategy that the present invention takes is after a hardware task is complete, do not regain the restructural resource shared by it immediately, but allow it continue to keep, can directly perform when new task is identical with its type, when new task does not have resource available, least recently used algorithm (Least Recently Used, LRU) is then used to replace.Whether the task that namely first checks before configuration, on hardware task list HTL, if exist, then improves priority, its priority scheduling is performed.
5, method flow
As Fig. 4, it is the hybrid tasks scheduling model based on reconfigurable structures that the present invention proposes.Be the multiple little task that DAG describes by application decomposition, through scheduler schedules, software task enters Q 1, according to CPU whether idle and priority calculate; And hardware task enters Q 2, judge Q by replacement policy 2in task can reuse restructural resource, if can reuse, enter Q 3if, can not, continue to remain on Q 2according to priority queue up, and configuration load, complete configuration or Q 3task enter Q 4, run according to priority, circulate successively, until the whole end of run of task, return total working time.
Input: DAG exports: the execution time of task
Fig. 5 is the process flow diagram of whole reconfigurable method
Step1: initialization Q 1, Q 2, Q 3, Q 4, Q 5, HTC.
The source node of Step2:DAG is T 1,
If T 1∈ T soft, T 1enter CPU to calculate, return working time, T 1child node enter Q by type 1or Q 2, leave out T 1node, release T 1the cpu resource taken.
Else T 1enter Q 2, from FRL, select a rectangle to T 1configuration, enters Q after configuration 4, then enter Q 5moving calculation, returns working time, T 1enter HTL list, T 1child node enter Q by type 1or Q 2, leave out T 1.
Step3: if CPU is idle, selects Q 1the task T that medium priority is the highest i.T ienter CPU to calculate, return working time, T ichild node enter Q by type 1or Q 2, leave out T i, release T ithe cpu resource taken.
Step4: if FRL non-NULL, selects Q 2the task T that medium priority is the highest j,
If T j∈ HTL, T 1enter Q 3, after priority+1, arrive Q 4,
Else T jq is entered after configuration 4.
Step5:Q 4middle in-degree be 0 task enter Q 5moving calculation, returns working time, and task enters HTL list, and the child node of this task is entered Q by type 1or Q 2, leave out this task.
Step6: repeat Step2 ~ Step5, until Q 1, Q 2for sky, return total working time.

Claims (4)

1. a hybrid tasks scheduling method for the reconfigurable system of directed acyclic graph, is characterized in that described method is as follows: by application decomposition be DAG describe multiple little task through scheduler schedules, software task enters Q 1, Q 1in software task after task manager according to CPU whether idle and dispatching priority calculate; And hardware task enters Q 2, work as Q 2in hardware task can reuse restructural resource, then enter Q 3, otherwise continue to remain on Q 2according to priority queue up, and by loader configuration load; Complete configuration to load or Q 3in task enter Q 4, Q 4in task enter Q through task manager 5run according to priority, circulate successively, until the whole end of run of task, return total working time; Wherein Q 1: software task queue, Q 2: pre-configured hardware task queue, Q 3: reconfiguration reuse queue, Q 4: configure queue, Q 5: operation task queue.
2. the hybrid tasks scheduling method of the reconfigurable system of a kind of directed acyclic graph according to claim 1, is characterized in that described task adopts five-tuple { w i, h i, c i, e i, s ibe described, w i, h iexpression task takies the wide and high of restructural resource, c ithe setup time of expression task, e ithe working time of expression task, s irepresent task type, if software task, then make w i, h i, c ibe zero.
3. the hybrid tasks scheduling method of the reconfigurable system of a kind of directed acyclic graph according to claim 1, is characterized in that described dispatching priority is as follows:
p i = α * b _ level + t _ level l max + α * ( 1 - w i + h i S )
Wherein α is weight system, w i, h irepresent the wide, high of task respectively, S represents reconfigurable device rectangular area, and namely t_level value from the top layer of DAG figure, calculates from source node to task T ithe time overhead of longest path consuming time before node; B_level then from the bottom of DAG figure, calculates from sink nodes to task T ithe time overhead of the longest path consuming time of node, l maxrefer to longest path length, l max=t_level+b_level.
4. the hybrid tasks scheduling method of the reconfigurable system of a kind of directed acyclic graph according to claim 3, when it is characterized in that described calculating t_level, the node listing of building topology order, to the configuration overhead of each father node of list interior joint and run expense and compare, maximal value is wherein as t_level value.
CN201410211523.0A 2014-05-19 2014-05-19 Hybrid task scheduling method of directed acyclic graph (DGA) based reconfigurable system Pending CN104239135A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410211523.0A CN104239135A (en) 2014-05-19 2014-05-19 Hybrid task scheduling method of directed acyclic graph (DGA) based reconfigurable system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410211523.0A CN104239135A (en) 2014-05-19 2014-05-19 Hybrid task scheduling method of directed acyclic graph (DGA) based reconfigurable system

Publications (1)

Publication Number Publication Date
CN104239135A true CN104239135A (en) 2014-12-24

Family

ID=52227266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410211523.0A Pending CN104239135A (en) 2014-05-19 2014-05-19 Hybrid task scheduling method of directed acyclic graph (DGA) based reconfigurable system

Country Status (1)

Country Link
CN (1) CN104239135A (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899468A (en) * 2015-06-25 2015-09-09 中国船舶重工集团公司第七二四研究所 Multi-parameter geometric model based radar task comprehensive-priority computing method
CN105260237A (en) * 2015-09-29 2016-01-20 中南大学 Task scheduling system of heterogeneous multi-core platform and scheduling method for task scheduling system
CN106569887A (en) * 2016-11-04 2017-04-19 东南大学 Fine-grained task scheduling method under cloud environment
CN107832255A (en) * 2017-09-14 2018-03-23 武汉科技大学 The optimization method of dynamic requests reconfigurable core during a kind of operation
CN109783206A (en) * 2019-01-04 2019-05-21 智恒科技股份有限公司 One kind is for describing the integrally-built method of big data task flow
CN110308988A (en) * 2019-05-17 2019-10-08 开放智能机器(上海)有限公司 A kind of dynamic dispatching method and system applied to heterogeneous computing platforms
CN111198546A (en) * 2020-01-02 2020-05-26 北京众信易保科技有限公司 Data acquisition control method and system
CN111597040A (en) * 2020-04-30 2020-08-28 中国科学院深圳先进技术研究院 Resource allocation method, device, storage medium and electronic equipment
CN111880933A (en) * 2020-07-27 2020-11-03 北京神舟航天软件技术有限公司 Reconfigurable hardware task dynamic allocation method based on heterogeneous computing platform
CN113377348A (en) * 2021-06-10 2021-09-10 平安科技(深圳)有限公司 Task adjustment method applied to task engine, related device and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996105A (en) * 2010-07-09 2011-03-30 中国科学技术大学苏州研究院 Static software/hardware task dividing and dispatching method for reconfigurable computing platform

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996105A (en) * 2010-07-09 2011-03-30 中国科学技术大学苏州研究院 Static software/hardware task dividing and dispatching method for reconfigurable computing platform

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
沈舒等: "《可重构混合任务调度算法》", 《计算机应用》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899468A (en) * 2015-06-25 2015-09-09 中国船舶重工集团公司第七二四研究所 Multi-parameter geometric model based radar task comprehensive-priority computing method
CN105260237A (en) * 2015-09-29 2016-01-20 中南大学 Task scheduling system of heterogeneous multi-core platform and scheduling method for task scheduling system
CN105260237B (en) * 2015-09-29 2018-08-31 中南大学 The task scheduling system and its dispatching method of heterogeneous polynuclear platform
CN106569887B (en) * 2016-11-04 2020-04-24 东南大学 Fine-grained task scheduling method in cloud environment
CN106569887A (en) * 2016-11-04 2017-04-19 东南大学 Fine-grained task scheduling method under cloud environment
CN107832255B (en) * 2017-09-14 2021-07-23 武汉科技大学 Optimization method for dynamically requesting reconfigurable core during running
CN107832255A (en) * 2017-09-14 2018-03-23 武汉科技大学 The optimization method of dynamic requests reconfigurable core during a kind of operation
CN109783206A (en) * 2019-01-04 2019-05-21 智恒科技股份有限公司 One kind is for describing the integrally-built method of big data task flow
CN109783206B (en) * 2019-01-04 2022-12-13 智恒科技股份有限公司 Method for describing overall structure of big data task flow
CN110308988A (en) * 2019-05-17 2019-10-08 开放智能机器(上海)有限公司 A kind of dynamic dispatching method and system applied to heterogeneous computing platforms
CN111198546A (en) * 2020-01-02 2020-05-26 北京众信易保科技有限公司 Data acquisition control method and system
CN111198546B (en) * 2020-01-02 2021-04-06 北京众信易保科技有限公司 Data acquisition control method and system
CN111597040A (en) * 2020-04-30 2020-08-28 中国科学院深圳先进技术研究院 Resource allocation method, device, storage medium and electronic equipment
CN111880933A (en) * 2020-07-27 2020-11-03 北京神舟航天软件技术有限公司 Reconfigurable hardware task dynamic allocation method based on heterogeneous computing platform
CN111880933B (en) * 2020-07-27 2023-09-22 北京神舟航天软件技术有限公司 Reconfigurable hardware task dynamic allocation method based on heterogeneous computing platform
CN113377348A (en) * 2021-06-10 2021-09-10 平安科技(深圳)有限公司 Task adjustment method applied to task engine, related device and storage medium

Similar Documents

Publication Publication Date Title
CN104239135A (en) Hybrid task scheduling method of directed acyclic graph (DGA) based reconfigurable system
Ogras et al. Design and management of voltage-frequency island partitioned networks-on-chip
CN106773711B (en) A kind of the hybrid tasks scheduling method and model of railway locomotive operation steerable system
CN104636204A (en) Task scheduling method and device
CN102360313B (en) Performance acceleration method of heterogeneous multi-core computing platform on chip
CN103034758B (en) Logic optimizing and parallel processing method of integrated circuit
Dorflinger et al. Hardware and software task scheduling for ARM-FPGA platforms
Pham et al. Incorporating energy and throughput awareness in design space exploration and run-time mapping for heterogeneous MPSoCs
JP2016532183A (en) Method and system for assigning computational blocks of a software program to a core of a multiprocessor system
CN113723931B (en) Workflow modeling method suitable for multi-scale high-flux material calculation
CN104834571B (en) A kind of data prefetching method applied to cloud workflow schedule
CN104699520B (en) A kind of power-economizing method based on virtual machine (vm) migration scheduling
Sung et al. Deep reinforcement learning for system-on-chip: Myths and realities
Choudhary et al. FPGA-based adaptive task scheduler for real time embedded systems
Ranganathan et al. CHESS: a comprehensive tool for CDFG extraction and synthesis of low power designs from VHDL
Lifa et al. On-the-fly energy minimization for multi-mode real-time systems on heterogeneous platforms
Wang et al. Spatial data dependence graph simulator for convolutional neural network accelerators
Cui A Novel Approach to Hardware/Software Partitioning for Reconfigurable Embedded Systems.
Guha et al. Resource management and task partitioning and scheduling on a run-time reconfigurable embedded system
Cai et al. A hybrid scheduling algorithm for reconfigurable processor architecture
CN104484160A (en) Instruction scheduling and register allocation method on optimized clustered VLIW (Very Long Instruction Word) processor
De Sensi et al. State-aware concurrency throttling
Bhopale et al. Adaptable Task Scheduling Algorithm: A Review
Liu et al. Energy optimization on dynamic multiple functions automotive cyber-physical systems
Ghribi et al. New Co-design Methodology for Real-time Embedded Systems.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20141224